我对异步任务感到困惑。当我的 Activity 重新开始时我必须做什么? 在我的 Activity 中, onCreate() 启动了一个异步任务。 我知道 Activity 会在 android 需要时重新启动(即方向改变或其他)。 我对此没有问题...而且我认为重新启动一个新的异步任务是可以接受的。
不过,我不知道我之前的异步任务发生了什么。 我有摧毁它吗?
我的第二个问题:如果我在上一个任务中有一个 progressDialog 怎么办。我是否必须关闭此对话框(以及如何关闭)?
最佳答案
不,您的 Asynctask
将随着您的 Activity 以及 progressDialog
结束。当您的 Activity 调用 onRestart()
时,它必须首先经过 onPause
和 onStop
,这将破坏您的 Activity 但不会破坏您的应用程序。
更多 Activity 信息-http://developer.android.com/reference/android/app/Activity.html
此外,取消 Asynctask
并将 progressDialog
设置为 null 会更安全。
来自 Asynctask
文档
可以随时通过调用 cancel(boolean) 来取消任务。调用此方法将导致对 isCancelled() 的后续调用返回 true。调用此方法后,将在 doInBackground(Object[]) 返回后调用 onCancelled(Object),而不是 onPostExecute(Object)。为确保尽快取消任务,您应该始终定期从 doInBackground(Object[]) 检查 isCancelled() 的返回值,如果可能(例如在循环内)。
关于android - 异步任务运行时 Activity 重启,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14850723/