我想在用户离开 Activity 时停止线程。听起来很简单,但没有任何功能,我试过,有效。
我用代码启动 Activity
lovi = new Intent(getApplicationContext(), listoverview.class);
lovi.putExtra("reloadAll", true);
startActivity(lovi);
在 listoverview 的 onCreate 中,我用代码启动线程
rlMF.start();
rlmF 看起来像这样:
public Thread rlMF = new Thread(new Runnable() {
public void run() {
reloadMissingFiles();
}
});
我尝试在 onPause 中使用 rlMF.stop()、.interrupt()、.suspend。没有什么能阻止它。
最佳答案
你必须添加一些标志来阻止它。通过其他方式停止线程可能会产生可怕的后果,例如资源泄漏。
例如:
volatile boolean activityStopped = false;
创建runnable时:
public Thread rlMF = new Thread(new Runnable() {
public void run() {
while (!activityStopped) {
// reloadMissingFiles() should check the flag in reality
reloadMissingFiles();
}
}
});
在 onPause() 中:
protected void onPause(){
super.onPause();
activityStopped = true;
}
关于android - 在暂停时停止线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11408453/