Android - 离开活动时停止所有线程

时间:2013-02-20 15:35:07

标签: java android multithreading android-asynctask android-activity

我的应用包含一个Activity,它会启动一堆AsyncTasks和递归函数。一切正常 - 即使我通过backhome按钮离开我的行为。

是否有一个简单的解决方案,可以在离开活动时停止一切?

修改

我的后台线程进行http调用等。通过我的日志,我可以看到线程仍在运行。

2 个答案:

答案 0 :(得分:2)

没有直接取消所有后台线程的方法。

您的活动的OnStop或onDistroy需要在下面调用方法来停止AsyncTask。

asyncTask.stop(boolean)

好吧,它不会直接阻止你的asyncTask,但是在doInBackground方法中你需要继续检查isCancelled值,如果它是true,那么只需结束doInBackground并跳过postExecute获取状态中的适当返回值。据我所知,这是唯一的方法。

答案 1 :(得分:-2)

您可以覆盖活动中的onPause()以停止线程。

所以你可以这样做:

@Override    
public void onPause(){
    super.onPause()
    // Stop threads here
}

并在onResume()中重新创建它们。