首页 > 代码库 > android中handler使用应该注意的问题(解决由handler引起的OOM内存泄漏)
android中handler使用应该注意的问题(解决由handler引起的OOM内存泄漏)
最近,在项目过程中频繁的使用handler处理一些ui线程上的操作,以及使用handler的postdealy。然而使用过后却不对handler进行处理,进而产生了内存溢出现象,通过google,发现了解决这一问题的方法。下面贴出项目中的相关代码
/**********************************以下代码解决了handler有可能造成的内存泄漏***************************************************/ /** * 创建静态内部类 */ private class MyHandler extends Handler{ //持有弱引用HandlerActivity,GC回收时会被回收掉. private final WeakReference<ReplyDetailsActivity> mActivty; public MyHandler(ReplyDetailsActivity activity){ mActivty =new WeakReference<ReplyDetailsActivity>(activity); } @Override public void handleMessage(Message msg) { ReplyDetailsActivity activity=mActivty.get(); super.handleMessage(msg); if(activity!=null){ } } } //执行相应的业务逻辑 private final Runnable myRunnable = new Runnable() { @Override public void run() { //执行我们的业务逻辑 if (sumPages>1){ for (int i = 2; i <=sumPages ; i++) { getReplyDetails(String.valueOf(i)); } } } };
在oncreate里面调用
MyHandler mHandler = new MyHandler(this); mHandler.postDelayed(myRunnable,2000);
这个解决方法的出处在这位大神的博客之中:http://blog.csdn.net/javazejian/article/details/50839443
android中handler使用应该注意的问题(解决由handler引起的OOM内存泄漏)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。