我有一个 AsyncTask 运行一个循环,它只在退出应用程序时停止循环,设置一个全局“停止” bool 值,它停止循环并通过 AsyncTask 完成。
我有这个代码:
@Override
public void onBackPressed()
{
KillAllThreads();
}
@Override
public void onUserLeaveHint()
{
KillAllThreads();
}
现在是事情。如果我启动 AsyncTask,onUserLeaveHint() 会立即被调用,当按下主页按钮时,它永远不会触发此方法。如果我不启动 AsyncTask 并让 Activity 加载而不做任何事情,那么当我按下 Home 时,它会触发 onUserLeaveHint() 方法。
如果用户点击退出应用程序,我应该如何停止线程?
最佳答案
您应该可以在 AsyncTask 上调用 .cancel(),您试过了吗?
看看我的谷歌文档上的这个示例项目,它说明了 AsyncTask 的重要方面:
- 开始任务,发布进度等
- 它展示了如何取消正在运行的任务。
- 它展示了如何在您的 Activity 暂停或停止时取消正在运行的任务。
链接:
关于Android 退出 AsyncTask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6474188/