第一种
@SuppressLint("HandlerLeak")
private Handler mHandler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
}
}
};
//mHandler.sendEmptyMessage(0);
@Override
public void onDestroy() {
super.onDestroy();
//防止handler内存泄漏
mHandler.removeCallbacksAndMessages(null);
}
第二种
private Handler handler = new Handler(new Handler.Callback() {
@Override
public boolean handleMessage(Message msg) {
switch (msg.what) {
}
return true;
}
});
//handler.sendEmptyMessage(0);
@Override
public void onDestroy() {
super.onDestroy();
//防止handler内存泄漏
handler.removeCallbacksAndMessages(null);
}
第三种
private WeakHandler weakHandler=new WeakHandler(this);
private static class WeakHandler extends Handler {
WeakReference<Activity> weakReference;
public WeakHandler(Activity activity) {
weakReference = new WeakReference<>(activity);
}
@Override
public void handleMessage(Message msg) {
Activity activity = weakReference.get();
if (activity != null&& !activity.isFinishing()) {
}
}
}
//weakHandler.sendEmptyMessage(0);
如果还有其他用法,请高人赐教。
ps:孔乙己先生,handler有几种用法啊!
网友评论