在AndroidManifest.xml
文件中,我在android:noHistory="true"
中有activity
个属性。在activity
中,我有AsyncTask
执行长时间运行的任务。当我转到另一个AsyncTask
时,activity
会继续运行吗?或者打开另一个activity
导致AsyncTask
停止?
答案 0 :(得分:1)
是的,它会持续到完成为止。但要小心,你没有对onPostExecute中的活动做些什么。
答案 1 :(得分:0)
它会继续运行,因为它在自己的线程中运行,但它涉及一些有关更新UI和处理屏幕旋转的潜在问题。
我建议您开始Service
,然后在那里运行AsyncTask
或Loader
。完成后,您可以使用LocalBroadcastManager
让任何活动知道您的Service
已完成,并且需要更新用户界面。
答案 2 :(得分:0)
一个很好的选择是使用loaders,它们提供这种任务管理,并且在轮换或其他导致活动消失的原因的情况下取消潜在的异步任务。