android中handler的作用是什么-亚博电竞手机版

android中handler的作用是什么

这篇文章主要介绍“android中handler的作用是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“android中handler的作用是什么”文章能帮助大家解决问题。

android handler的详解

handler我们常常用于通知主线程做相对应的操作,但是如果使用不但的话就会造成内存泄露,所以记录写正确的handler写法。

handlerhandler=newhandler(){publicvoidhandlemessage(messagemsg){//dosomething};};handler.sendemptymessagedelayed(0,100*1000);

像上面的代码片段,就会存在内存泄露的风险,因为handler占着acitvity的引用阻止了系统进行gc回收操作。

privatestaticclassmyhandlerextendshandler{weakreferencemweakreferenceactivity;publicmyhandler(mainactivityactivity){mweakreferenceactivity=newweakreference(activity);}@overridepublicvoidhandlemessage(messagemsg){super.handlemessage(msg);if(null!=mweakreferenceactivity){mainactivity_activity=mweakreferenceactivity.get();//_activity.dosomething();}}}

正确的做法是weakreference存放存入的activity,这样在activity结束回收的时候weakreference不会阻止系统进行回收操作,能有效的避免因为handler引起的内存泄露风险。

当然你使用handler那种写法也不是不行的,需要你在结束activity的时候handler.removecallbacksandmessages(null);让系统能够正常进行回收操作。

关于“android中handler的作用是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注恰卡编程网行业资讯频道,小编每天都会为大家更新不同的知识点。

展开全文
内容来源于互联网和用户投稿,文章中一旦含有亚博电竞手机版的联系方式务必识别真假,本站仅做信息展示不承担任何相关责任,如有侵权或涉及法律问题请联系亚博电竞手机版删除

最新文章

网站地图