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;
}


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