我的应用包含一个Activity
,它会启动一堆AsyncTasks
和递归函数。一切正常 - 即使我通过back
或home
按钮离开我的行为。
是否有一个简单的解决方案,可以在离开活动时停止一切?
修改
我的后台线程进行http调用等。通过我的日志,我可以看到线程仍在运行。
答案 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()中重新创建它们。