有时当一个组件或者activity被destory()的时候要求其启动的线程也一起终止掉,我看书总结了一下有这有几种方法:
1.初始化的时候,定义启动的线程为一个守护线程,这样当主线程消亡掉的时候,其他线程也会被终止。
java代码:
//使用下面的方法,当初始化一个线程时
myThread.setDaemon(true);
myThread.start();
2.可在activity中的onstop()方法中调用以下代码。
java代码:
if(myThread != null) {
Thread dummy = myThread;
myThread = null;
dummy.interrupt();
}
3.可在线程run()方法中设置标志位。
java代码:
if(!paused) {
//do something,这是线程run方法中
}
boolean paused = false;
//可在onPause()中通过设置标志位使线程不活动,
protected void onPause() {
paused = true;
super.onPause();
}
//可在onPause()中通过设置标志位激活线程,
@Override
protected void onResume() {
super.onResume();
paused = false;
}
本文介绍了在Android开发中,如何确保当Activity销毁时其启动的线程也能被正确终止,包括将线程设置为守护线程、在onStop()方法中中断线程以及通过设置标志位来控制线程运行状态等方法。
6114

被折叠的 条评论
为什么被折叠?



