美文网首页android开发
Handler的正确使用,防止内存泄漏

Handler的正确使用,防止内存泄漏

作者: 来自唐朝的栗子 | 来源:发表于2017-02-16 09:56 被阅读145次

如果Handler使用不当,会导致内存泄漏,直至内存溢出。因此,为了避免这种情况的发生,Handler要定义为static的,并且要是弱引用。本文用内部类的方式给出。

static class MyHandler extends Handler {
WeakReference<YourActivity> mActivity;

MyHandler(YourActivity activity) {
       mActivity = new WeakReference<>(activity);
    }

@Override
public void handleMessage(Message msg) {
     super.handleMessage(msg);
     YourActivity mAddActivity = mActivity.get();
     if (msg.what == 0) {
          mAddActivity.tv_save.setEnabled(true);
          //你自己的代码逻辑
        }
    }
}

private MyHandler myHandler = new MyHandler(YourActivity.this);

最后,不要忘记要,要及时销毁这个handler

 @Override
    protected void onDestroy() {
        super.onDestroy();
        if (mHandler != null && mHandler.hasMessages(PROGRESS)) {
            mHandler.removeMessages(PROGRESS);
        }
    }

这就搞定了,不会导致内存泄漏

相关文章

网友评论

    本文标题:Handler的正确使用,防止内存泄漏

    本文链接:https://www.haomeiwen.com/subject/qlbcwttx.html