AsyncTask with android:noHistory= "true"



AndroidManifest.xml文件中,我在activity中有android:noHistory="true"属性。在那个activity中,我有一个AsyncTask执行一个长时间运行的任务。当我转到另一个activity时,AsyncTask会继续运行吗?还是打开另一个activity会导致AsyncTask停止?

是的,它会一直持续到完成。但请注意,您没有对onPostExecute中的活动执行某些操作。

对您来说,一个不错的选择是使用加载器,它们提供这种任务管理,并且在旋转或其他使活动消失的原因的情况下会取消底层异步任务。

它将继续运行,因为它在自己的线程中运行,但它涉及一些有关更新 UI 和处理屏幕旋转的潜在问题。

我建议您改为启动Service并在那里运行AsyncTaskLoader。完成后,可以使用LocalBroadcastManager让任何活动知道Service已完成并且需要更新 UI。

最新更新