【发布时间】:2013-04-25 00:54:58
【问题描述】:
我有一个应用程序,因为你不能在我使用 AsyncTask 的主线程上进行网络操作,所以问题是一旦我 execute() AsyncTask 之后我 finish()活动,也许用户会finish()整个应用程序,所以我想知道的是:
- 只要在应用运行时调用
execute(),doInBackground()和onPostExecute()是否会始终完成doInBackground()和onPostExecute()?
【问题讨论】:
-
您应该使用您的活动生命周期来取消正在运行的任务,使用 Asynctask 的
cancel方法。继续网络操作是没有用的,即使您的 UI 被破坏,它也很可能继续运行。但是在网络操作完成后,它会尝试更新您的 UI 应用程序时会遇到问题。
标签: android android-asynctask android-lifecycle