Android 取消線程的方法

有時當一個組件或者activity被destory()的時候要求其啓動的線程也一起終止掉,我看書總結了一下有這有幾種方法:

      1.初始化的時候,定義啓動的線程爲一個守護線程,這樣當主線程消亡掉的時候,其他線程也會被終止。

myThread.setDaemon(true);
myThread.start();

       2.可在activity中的onstop()方法中調用以下代碼。

if(myThread != null) {
<span style="white-space:pre">	</span>Thread dummy = myThread;
<span style="white-space:pre">	</span>myThread = null;
<span style="white-space:pre">	</span>dummy.interrupt();
}

      3.可在線程run()方法中設置標誌位。(不過這個並沒有殺死線程,可視情況使用)

if(!paused) {
<span style="white-space:pre">	</span>//do something,這是線程run方法中
}

boolean paused = false;

//可在onPause()中通過設置標誌位使線程不活動,
protected void onPause() {
<span style="white-space:pre">	</span>paused = true;
<span style="white-space:pre">	</span>super.onPause();
}

//可在onPause()中通過設置標誌位激活線程,
@Override
protected void onResume() {
<span style="white-space:pre">	</span>super.onResume();
<span style="white-space:pre">	</span>paused = false;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章