Android Handler的詳解及實(shí)例
Android Handler的詳解
Handler我們常常用于通知主線程做相對應(yīng)的操作,但是如果使用不但的話就會造成內(nèi)存泄露,所以記錄寫正確的Handler寫法。
Handler handler = new Handler() {
public void handleMessage(Message msg) {
//do something
};
};
handler.sendEmptyMessageDelayed(0, 100 * 1000);
像上面的代碼片段,就會存在內(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不會阻止系統(tǒng)進(jìn)行回收操作,能有效的避免因?yàn)閔andler引起的內(nèi)存泄露風(fēng)險(xiǎn)。
當(dāng)然你使用handler那種寫法也不是不行的,需要你在結(jié)束Activity的時(shí)候handler.removeCallbacksAndMessages(null);讓系統(tǒng)能夠正常進(jìn)行回收操作。
以上就是關(guān)于Android Handle 用法的詳解,關(guān)于Android 線程的文章,本站還有好多,大家可以參閱,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
- 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 自定義加載動(dòng)畫Dialog彈窗效果的示例代碼
這篇文章主要介紹了Android 自定義加載動(dòng)畫Dialog彈窗效果,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06
Android Presentation實(shí)現(xiàn)雙屏異顯
這篇文章主要為大家詳細(xì)介紹了Android Presentation實(shí)現(xiàn)雙屏異顯,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-01-01
Android實(shí)現(xiàn)橫屏切換科學(xué)計(jì)算器
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)橫屏切換科學(xué)計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06
Android編程實(shí)現(xiàn)通知欄進(jìn)度條效果的方法示例
這篇文章主要介紹了Android編程實(shí)現(xiàn)通知欄進(jìn)度條效果的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Android通知欄進(jìn)度條效果的功能、布局相關(guān)實(shí)現(xiàn)方法與操作注意事項(xiàng),需要的朋友可以參考下2018-02-02
Android RecyclerView的刷新分頁的實(shí)現(xiàn)
這篇文章主要介紹了Android RecyclerView的刷新分頁的實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-05-05
Flutter?文字中劃線動(dòng)畫StrikeThroughTextAnimation
這篇文章主要為大家介紹了Flutter?文字中劃線動(dòng)畫StrikeThroughTextAnimation示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04

