我的Android应用程序使用AsyncTask从网站下载一些数据。
但是当我在活动开始后立即按下我的Android设备的后退按钮时,会调用工作线程的 onPostExecute 方法,这很奇怪,因为android之前称为 onDestroy 方法到onPostExecute并且onPostExecute
方法在我认为不再存在的主UIThread上运行。
任何人都可以帮助我,我不明白吗?
答案 0 :(得分:2)
AsyncTask
基本上是在后台执行你想要的东西,作为一个独立于UI的线程。因此,当您退出UI时,这并不一定意味着您已经杀死了AsyncTask。它将继续它的常规生命周期并以onPostExecute
结束。如果您想要杀死AsyncTask
,那么您必须为cancel()
调用AsyncTask
函数。
知道这一点,你实际上无法杀死AsyncTask
这将由Android本身完成。因此,您必须等待一段时间,直到当前任务被终止(如果您致电cancel()
),以便重新启动此特定AsyncTask
。
您还应该阅读onCancelled()
方法。有关详细信息,请查看documentation。
如果我犯了任何错误,请纠正我。