像Handler handler= new Handler(){};的可能会出现内存泄漏
所以我们用下面的来解决
//弱引用 Handler
public static class MyHandler extends Handler {
private WeakReference<MainActivity> weakReference;
public MyHandler(MainActivity mainActivity) {
weakReference = new WeakReference<>(mainActivity);
}
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
MainActivity mainActivity = weakReference.get();
if (mainActivity != null) {
switch (msg.what) {
case 1:
//可以延时发送
sendEmptyMessageDelayed(1, 1000);
break;
default:
break;
}
}
}
}
本文介绍了一种使用弱引用Handler防止内存泄漏的方法。通过创建一个持有Activity弱引用的Handler,当Activity不再使用时,垃圾回收器可以及时回收,从而避免了内存泄漏的问题。文章详细展示了如何实现弱引用Handler,并在handleMessage方法中安全地访问Activity。

252

被折叠的 条评论
为什么被折叠?



