我的应用程序包含一个Activity
,它启动了一堆AsyncTasks
和递归函数。一切正常 - 甚至当我通过back
或home
按钮离开我的活动时。Android - 离开活动时停止所有线程
是否有一个简单的解决方案,可以在离开活动时停止一切?
编辑
我的后台线程使HTTP调用等。通过我的日志,我可以看到线程仍在运行。
我的应用程序包含一个Activity
,它启动了一堆AsyncTasks
和递归函数。一切正常 - 甚至当我通过back
或home
按钮离开我的活动时。Android - 离开活动时停止所有线程
是否有一个简单的解决方案,可以在离开活动时停止一切?
编辑
我的后台线程使HTTP调用等。通过我的日志,我可以看到线程仍在运行。
没有直接的方法来取消所有后台线程。
OnStop或onDistroy你的活动你需要调用下面的方法来停止AsyncTask。
asyncTask.stop(boolean)
那么,它不会直接阻止你的AsyncTask但在doInBackground方法,你需要不断地检查isCancelled值,如果真那么刚刚结束的doInBackground并跳过postExecute在适当的状态返回值。据我所知,这是唯一的方法。
您可以在活动中覆盖onPause()以停止线程。
所以,你可以这样做:
@Override
public void onPause(){
super.onPause()
// Stop threads here
}
而且在重建的onResume他们()。
从理论上讲,Android已经为您负责。 – m0skit0 2013-02-20 15:36:13
不,它不。否则我不会问这个问题,对吧? ;) – Ron 2013-02-20 15:36:37
尝试用'System.exit()'。这将确保进程被销毁(因此所有连接的线程)。哦,*线程不是进程*。 – m0skit0 2013-02-20 15:39:18