AndroidManifest.xml
文件中,我在activity
中有android:noHistory="true"
属性。在那个activity
中,我有一个AsyncTask
执行一个长时间运行的任务。当我转到另一个activity
时,AsyncTask
会继续运行吗?还是打开另一个activity
会导致AsyncTask
停止?
是的,它会一直持续到完成。但请注意,您没有对onPostExecute中的活动执行某些操作。
对您来说,一个不错的选择是使用加载器,它们提供这种任务管理,并且在旋转或其他使活动消失的原因的情况下会取消底层异步任务。
它将继续运行,因为它在自己的线程中运行,但它涉及一些有关更新 UI 和处理屏幕旋转的潜在问题。
我建议您改为启动Service
并在那里运行AsyncTask
或Loader
。完成后,可以使用LocalBroadcastManager
让任何活动知道Service
已完成并且需要更新 UI。