Android Handler的詳解及實(shí)例
Android Handler的詳解
Handler我們常常用于通知主線程做相對(duì)應(yīng)的操作,但是如果使用不但的話就會(huì)造成內(nèi)存泄露,所以記錄寫(xiě)正確的Handler寫(xiě)法。
Handler handler = new Handler() { public void handleMessage(Message msg) { //do something }; }; handler.sendEmptyMessageDelayed(0, 100 * 1000);
像上面的代碼片段,就會(huì)存在內(nèi)存泄露的風(fēng)險(xiǎn),因?yàn)閔andler占著Acitvity的引用阻止了系統(tǒng)進(jìn)行GC回收操作。
private static class MyHandler extends Handler { WeakReference<MainActivity> mWeakReferenceActivity; public MyHandler(MainActivity activity) { mWeakReferenceActivity = new WeakReference<MainActivity>(activity); } @Override public void handleMessage(Message msg) { super.handleMessage(msg); if (null != mWeakReferenceActivity) { MainActivity _activity = mWeakReferenceActivity.get(); //_activity.dosomething(); } } }
正確的做法是WeakReference存放存入的Activity,這樣在Activity結(jié)束回收的時(shí)候WeakReference不會(huì)阻止系統(tǒng)進(jìn)行回收操作,能有效的避免因?yàn)閔andler引起的內(nèi)存泄露風(fēng)險(xiǎn)。
當(dāng)然你使用handler那種寫(xiě)法也不是不行的,需要你在結(jié)束Activity的時(shí)候handler.removeCallbacksAndMessages(null);讓系統(tǒng)能夠正常進(jìn)行回收操作。
以上就是關(guān)于Android Handle 用法的詳解,關(guān)于Android 線程的文章,本站還有好多,大家可以參閱,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
- Android中Handler實(shí)現(xiàn)倒計(jì)時(shí)的兩種方式
- Android HandlerThread的使用及原理詳解
- Android Handler移除Message詳解及實(shí)例代碼
- Android 消息機(jī)制以及handler的內(nèi)存泄露
- Android 中Handler引起的內(nèi)存泄露
- Android Handler 機(jī)制實(shí)現(xiàn)原理分析
- Android使用Handler實(shí)現(xiàn)View彈性滑動(dòng)
- Android用HandlerThread模擬AsyncTask功能(ThreadTask)
相關(guān)文章
Android Studio進(jìn)行APP圖標(biāo)更改的兩種方式總結(jié)
這篇文章主要介紹了Android Studio進(jìn)行APP圖標(biāo)更改的兩種方式總結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06Android AlertDialog多種創(chuàng)建方式案例詳解
這篇文章主要介紹了Android AlertDialog多種創(chuàng)建方式案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08Fultter NestedScrollView實(shí)現(xiàn)吸頂效果以及遇到問(wèn)題解析
這篇文章主要為大家介紹了Fultter NestedScrollView實(shí)現(xiàn)吸頂效果以及遇到問(wèn)題解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09Android開(kāi)發(fā)之a(chǎn)ndroid_gps定位服務(wù)簡(jiǎn)單實(shí)現(xiàn)
這篇文章主要介紹了Android開(kāi)發(fā)之a(chǎn)ndroid_gps定位服務(wù)簡(jiǎn)單實(shí)現(xiàn) ,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-04-04Android利用Chronometer實(shí)現(xiàn)倒計(jì)時(shí)功能
這篇文章主要為大家詳細(xì)介紹了Android利用Chronometer實(shí)現(xiàn)倒計(jì)時(shí)功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11Android開(kāi)發(fā)之Wifi基礎(chǔ)教程
這篇文章主要介紹了Android開(kāi)發(fā)Wifi基礎(chǔ)教程,實(shí)例分析了Wifi的各種常見(jiàn)基本技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-02-02Android Studio實(shí)現(xiàn)簡(jiǎn)易計(jì)算器
這篇文章主要為大家詳細(xì)介紹了Android Studio實(shí)現(xiàn)簡(jiǎn)易計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07