仅在应用关闭时运行异步任务
Posted
技术标签:
【中文标题】仅在应用关闭时运行异步任务【英文标题】:Run Async Task when app is closed only 【发布时间】:2016-02-24 06:29:19 【问题描述】:我想在应用程序关闭时才运行异步任务。我尝试将它放在 onDestroy() 方法中,但它有时会被调用(例如当应用程序崩溃时)。我还尝试将它放在 onPause() 方法上,但它也会在用户尝试查看不同的应用程序时运行,而不是仅在应用程序关闭时运行。谢谢!
真诚的洛基
【问题讨论】:
***.com/questions/5593115/… 和 ***.com/questions/5747803/… 和 ***.com/questions/18827085/… 的重复项 尝试在onBackPressed()
上调用finish()
并检查onDestroy()
是否被调用?
使用服务在后台运行..
我认为这会给你一个好主意developer.android.com/reference/android/os/AsyncTask.html
【参考方案1】:
您应该使用Thread
而不是AsyncTask
,但如果您想使用AsyncTask
,您需要执行以下操作:
不要更新 AsyncTask
中的 UI,因为 onDestroy
会删除该活动的资源和上下文。如果您尝试更新它们,它将崩溃。
在创建AsyncTask
时使用应用程序Context
而不是活动Context
,因为活动Context
在活动销毁后无效。
【讨论】:
以上是关于仅在应用关闭时运行异步任务的主要内容,如果未能解决你的问题,请参考以下文章
如果结果已经可用,则仅在单击按钮时启动异步任务并执行操作,否则等待结果然后执行操作
在 JMS 队列侦听器 onMessage 方法中运行异步代码 [关闭]