亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時(shí)間:2017年07月15日 11:41:33   作者:左手木亽  
這篇文章主要介紹了Android Handler的詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下

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ì)本站的支持!

相關(guān)文章

最新評(píng)論