private static class MyHandler extends Handler {
private final WeakReference<MainActivity> mReference;
public MyHandler(MainActivity activity){
mReference = new WeakReference<MainActivity>(activity);
}
@Override
public void handleMessage(Message msg){
super.handleMessage(msg);
if (msg.what == 0) {
MainActivity mainActivity = mReference.get();
if (mainActivity != null) {
mainActivity.doSomething(msg);
}
}
}
}
在fragment中使用:
private static class MyHandler extends Handler {
private final WeakReference<ThreeFragment> mReference;
public MyHandler(ThreeFragment activity){
mReference = new WeakReference<ThreeFragment>(activity);
}
@Override
public void handleMessage(Message msg){
super.handleMessage(msg);
if (msg.what == REFRESH_ADAPTER) {
ThreeFragment activity = mReference.get();
if (activity != null) {
activity.doSomething(msg);
}
}
}
}