【发布时间】:2016-04-01 21:02:27
【问题描述】:
当我让应用程序在后台运行然后又回到屏幕上显示应用程序时,它不断崩溃。我相信这与我在 onResume() 中运行的 AsyncTask 有关。在其中一个 cmets 上的 answer 中,这个家伙说“跟踪活动的实例并让异步任务等待它不为空”。那么我究竟如何让它等到它不为空呢?
一般来说,当您在 Fragment 中运行的 AsyncTask 将在 Activity/Fragment 生命周期更改期间工作时,引用 Activity 的最安全方法是什么?
【问题讨论】:
-
将活动传递给 asynctask ,在这种情况下,除非您的异步任务完成,否则您的活动不会被垃圾收集。
-
@dex 所以你的意思是不要在 AsyncTask 中调用 getActivity() 而是将活动的引用传递给 AsyncTask?这会自动防止 Activity 被垃圾收集?
-
只是不要使用 AsyncTask。改用加载器(AsyncTaskLoader 是一个很好的起点),它旨在适当地处理配置更改。
标签: java android android-asynctask