猿问

即使活动已经销毁,AsyncTask也不会停止

即使活动已经销毁,AsyncTask也不会停止

我有一个AsyncTask对象,它在创建活动时开始执行,并在后台执行操作(下载最多100个图像)。一切都很好,但有一种我不能理解的特殊行为。

例如:当Android屏幕的方向发生变化时,活动将被销毁并再次创建。所以我重写onRetainNonConfigurationInstance()方法并保存在AsyncTask中执行的所有下载数据。我这样做的目的是每次在方向更改期间销毁活动时都不会运行AsyncTask,但正如我在日志中看到的那样,之前的AsyncTask仍然在执行。(虽然数据保存正确)

我甚至尝试在活动的onDestroy()方法中取消AsyncTask,但日志仍然显示AsyncTask正在运行。

这是非常奇怪的行为,如果有人能告诉我停止/取消AsyncTask的正确程序,真的很感激。

谢谢


繁星点点滴滴
浏览 662回答 3
3回答

一只甜甜圈

在方向改变时重新创建活动,是的,这是真的。但是每当这个事件发生时你都可以继续asynctask。你检查一下@Overrideprotected void onCreate(Bundle savedInstanceState) {       if ( savedInstanceState == null ) {            startAsyncTask()      } else {            // ** Do Nothing async task will just continue.      }}-干杯
随时随地看视频慕课网APP

相关分类

Android
我要回答