android - Handler 内存泄露问题
本文介绍了android - Handler 内存泄露问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
请问这种写法会不会导致内存泄露:
static class MyHandler extends Handler {
WeakReference<Activity> mWeakReference = null;
public MyHandler(SampleActivity activity) {
mWeakReference = new WeakReference<Activity>(activity);
}
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
SampleActivity activity = (SampleActivity) mWeakReference.get();
if(activity == null) {
return;
} else {
if(msg.what == 0) {
//do something
}
}
}
}
然后我在onCreate方法中初始化一个MyHandler的对象:
private MyHandler mHandler = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initViews();
mHandler = new MyHandler(this);
}
解决方案
不会了,这是标准的使用弱引用的方式。
这篇关于android - Handler 内存泄露问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文