我的应用程序包含一个Activity
启动一堆AsyncTasks
递归函数。一切正常 - 即使我通过back
或home
按钮离开我的活动。
是否有一个简单的解决方案可以在离开活动时停止一切?
编辑
我的后台线程进行 http 调用等。通过我的日志,我可以看到线程仍在运行。
我的应用程序包含一个Activity
启动一堆AsyncTasks
递归函数。一切正常 - 即使我通过back
或home
按钮离开我的活动。
是否有一个简单的解决方案可以在离开活动时停止一切?
编辑
我的后台线程进行 http 调用等。通过我的日志,我可以看到线程仍在运行。
没有直接的方法可以取消所有后台线程。
您需要调用以下方法来停止 AsyncTask 的活动的 OnStop 或 onDistroy。
asyncTask.stop(boolean)
好吧,它不会直接阻止你 asyncTask 但在 doInBackground 方法中你需要继续检查isCancelled值,如果它是真的,那么只需结束 doInBackground 并跳过 postExecute 以获得适当的状态返回值。这是我所知的唯一方法。
您可以在活动中覆盖 onPause() 以停止线程。
所以你可以这样做:
@Override
public void onPause(){
super.onPause()
// Stop threads here
}
并在 onResume() 中重新创建它们。