国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Android > 正文

Android Handler的詳解及實(shí)例

2019-12-12 02:28:06
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

Android Handler的詳解

Handler我們常常用于通知主線程做相對(duì)應(yīng)的操作,但是如果使用不但的話就會(huì)造成內(nèi)存泄露,所以記錄寫正確的Handler寫法。

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那種寫法也不是不行的,需要你在結(jié)束Activity的時(shí)候handler.removeCallbacksAndMessages(null);讓系統(tǒng)能夠正常進(jìn)行回收操作。

以上就是關(guān)于Android Handle 用法的詳解,關(guān)于Android 線程的文章,本站還有好多,大家可以參閱,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 洮南市| 西藏| 闸北区| 浙江省| 剑河县| 炉霍县| 丽水市| 河北区| 新巴尔虎右旗| 竹溪县| 秦安县| 竹溪县| 昌邑市| 中山市| 紫金县| 海阳市| 桐城市| 博野县| 秀山| 阳朔县| 崇明县| 上林县| 崇信县| 彰武县| 紫金县| 惠水县| 佛坪县| 额济纳旗| 辰溪县| 平谷区| 斗六市| 大化| 紫云| 揭西县| 鄂伦春自治旗| 长丰县| 郓城县| 潮安县| 江津市| 冕宁县| 温宿县|