Android 退出 AsyncTask

发布于 2024-11-17 08:29:15 字数 463 浏览 2 评论 0原文

我有一个 AsyncTask 正在运行一个循环,该循环仅在退出应用程序时停止循环,设置全局“停止”布尔值,它会停止循环并完成 AsyncTask。

我有这段代码:

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

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

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

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

I have an AsyncTask running a loop which only stops looping when exiting the app, a global "stop" boolean gets set and it stops the loop and finishes through the AsyncTask.

I have this code:

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

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

Now here is the thing. If I initiate the AsyncTask, onUserLeaveHint() gets called right away, and when the home button is pressed, it never fires this method. If I dont initiate the AsyncTask and let the activity load without doing anything, then when I press Home, it fires the onUserLeaveHint() method.

How am I supposed to stop the thread if the user clicks out of the app?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

傲娇萝莉攻 2024-11-24 08:29:15

您应该能够在 AsyncTask 上调用 .cancel() ,您尝试过吗?

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

  • 启动任务、发布进度等。
  • 它展示了如何取消正在运行的任务。
  • 它展示了如何在活动暂停或停止时取消正在运行的任务。

链接:

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

You should be able to call .cancel() on a AsyncTask, have you tried that?

Have a look at this sample project on my google docs, It illustrates the important aspects of AsyncTask:

  • starting a task, publishing progress, etc.
  • It shows how to cancel the running task.
  • It shows how to cancel a running task when your activity is paused or stopped.

link:

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文