4 回答

TA贡献1877条经验 获得超6个赞
不会。
线程何时销毁?
进程销毁的时候,它才会销毁。所以这个问题就变成——进程何时销毁。
进程何时销毁?
为了节省下次启动的时间,Android会尽可能的将进程驻留于内存中——按HOME键、返回键都不会销毁进程,只有在系统需要回收内存的时候才销毁进程。
用户的以下操作会造成进程被销毁:
将应用从“最近应用”列表移除
到“设置”里停止该应用
程序员如何让线程随Activity销毁
一个可行的方案是:
在线程的
run
方法里处理InterruptedException
异常在Activity的
onStop()
函数里interrupt
线程
代码如下:
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
private Thread thread;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.thread = new Thread() {
@Override
public void run() {
while (true) {
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
// 跳出循环,线程会完成运行
break;
}
Log.d(TAG, "run: t " + System.currentTimeMillis());
}
}
};
this.thread.start();
}
@Override
protected void onStop() {
super.onStop();
if (this.thread != null) {
this.thread.interrupt();
}
}
}
添加回答
举报