Sty*_*2go 1 android android-intent
我想在用户离开活动时停止一个线程.这听起来很简单但没有功能,我试过,有效.
我用代码启动Activity
lovi = new Intent(getApplicationContext(), listoverview.class);
lovi.putExtra("reloadAll", true);
startActivity(lovi);
Run Code Online (Sandbox Code Playgroud)
在listoverview的onCreate中,我用代码启动Thread
rlMF.start();
Run Code Online (Sandbox Code Playgroud)
而rlMF看起来像这样:
public Thread rlMF = new Thread(new Runnable() {
public void run() {
reloadMissingFiles();
}
});
Run Code Online (Sandbox Code Playgroud)
我尝试在onPause中使用rlMF.stop(),. interrupt(),. suspend.没有什么能阻止它.
你必须添加一些标志来阻止它.通过其他方式停止线程可能会产生可怕的后果,例如资源泄漏.
例如:
volatile boolean activityStopped = false;
Run Code Online (Sandbox Code Playgroud)
创建runnable时:
public Thread rlMF = new Thread(new Runnable() {
public void run() {
while (!activityStopped) {
// reloadMissingFiles() should check the flag in reality
reloadMissingFiles();
}
}
});
Run Code Online (Sandbox Code Playgroud)
在onPause()中:
protected void onPause(){
super.onPause();
activityStopped = true;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5571 次 |
| 最近记录: |