Android(安卓)Handler内存泄漏解决方法
16lz
2021-12-04
Android Context内存泄漏的情况很多,有兴趣可阅读以下文章:
Android学习系列(36)--App调试内存泄露之Context篇(上)
Android学习系列(37)--App调试内存泄露之Context篇(下)
下面是关于Handler内存泄漏的一种解决方法:
1、将Handler声明为静态类;
2、在Handler中增加一个对Activity的弱引用(WeakReference);
具体实现如下:
public class MyActivity extends Activity {private Handler mHandler = null;private final static int MSG_SECCESS = 1;private final static int MSG_FAILED = 2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);mHandler = new ActivityHandler(this);}private static class ActivityHandler extends Handler {private WeakReference<Activity> activityWeakReference = null;public ActivityHandler(Activity activity) {activityWeakReference = new WeakReference<Activity>(activity);}@Overridepublic void handleMessage(Message msg) {// TODO Auto-generated method stubMyActivity activity = (MyActivity) activityWeakReference.get();if (activity != null){switch(msg.what) {case MSG_SECCESS:break;case MSG_FAILED:break;default:break;}}}}}
更多相关文章
- android 内存消耗分析
- android 3.0中加快启动模拟器
- 一定要注意 Android(安卓)内存泄漏问题
- android 3.0中加快启动模拟器
- Android(安卓)获得图片并解码成缩略图以减少内存消耗
- android 3.0中加快启动模拟器
- Android(安卓)Context 使用时注意内存泄漏问题
- android 3.0中加快启动模拟器
- android图片优化,内存释放处理