Android 退出 AsyncTask

标签 android android-asynctask break

我有一个 AsyncTask 运行一个循环,它只在退出应用程序时停止循环,设置一个全局“停止” bool 值,它停止循环并通过 AsyncTask 完成。

我有这个代码:

@Override
public void onBackPressed() 
{
     KillAllThreads(); 
}

@Override 
public void onUserLeaveHint() 
{     
    KillAllThreads();       
}

现在是事情。如果我启动 AsyncTask,onUserLeaveHint() 会立即被调用,当按下主页按钮时,它永远不会触发此方法。如果我不启动 AsyncTask 并让 Activity 加载而不做任何事情,那么当我按下 Home 时,它​​会触发 onUserLeaveHint() 方法。

如果用户点击退出应用程序,我应该如何停止线程?

最佳答案

您应该可以在 AsyncTask 上调用 .cancel(),您试过了吗?

看看我的谷歌文档上的这个示例项目,它说明了 AsyncTask 的重要方面:

  • 开始任务,发布进度等
  • 它展示了如何取消正在运行的任务。
  • 它展示了如何在您的 Activity 暂停或停止时取消正在运行的任务。

链接:

https://docs.google.com/leaf?id=0BwAnjRVwT4WzOWMwYjFhNTctOTUxYy00NjQwLTgwNWEtMmE5MzEyZWQ3NjUx&hl=en_US&authkey=CLnH8_ID

关于Android 退出 AsyncTask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6474188/

相关文章:

java - 从 asynctask 返回变量到 UI

android - 使用 AsyncTask 将图像加载到自定义适配器中

java - 如何不在循环内打印所有内容,而是根据决策进行制作

JavaScript Break 语句

android - 如何在非 Activity 类 (LocationManager) 中使用 getSystemService?

java - 在 list-android 中搜索并检索结果

java - android:定期在任务或线程中拍照?

SQLite 并以 UTC 格式插入当前日期

android - (Android) 为什么 invalidate() 不会立即更新我的按钮?

c - do..while 循环 - 当条件满足时不中断