我有一个活动A,其任务需要在后台执行。所以我将任务发送到异步。
时活动生命周期会发生什么myAsyncTask.cancel(true)
调用,即异步任务被杀死。
答案 0 :(得分:0)
根据Android Developers停止AsyncTask,
可以通过调用cancel(boolean)随时取消任务。调用此方法将导致后续调用isCancelled()返回true。调用此方法后,将在doInBackground(Object [])返回后调用onCancelled(Object)而不是onPostExecute(Object)。为确保尽快取消任务,应始终定期从doInBackground(Object [])检查isCancelled()的返回值(如果可能)(例如在循环内)。
并且对于“调用活动的生命周期会发生什么”我不太了解,您可以看到here活动的生命周期,但由于异步任务在后台执行,活动将继续工作,但根据android studio中找到的文档停止asynctask
默认实现只是调用onCancelled()并忽略结果。如果您编写自己的实现,请不要调用super.onCancelled(result)。
您可以在停止异步任务后自行实现如何处理,之后可能会恢复活动生命周期并正常工作。
我没有证实这一点,但如果我错了,请告诉我。