当我让应用程序在后台运行然后返回到屏幕上显示该应用程序时,我的应用程序不断崩溃。我相信这与我在 onResume() 中运行的 AsyncTask 有关。在此answer在其中一条评论中,该人说“跟踪 Activity 的实例并让异步任务等待它不为空”。那么我究竟如何让它等到它不为空呢?
一般来说,当您在 Fragment 中运行 AsyncTask 并且在 Activity/fragment 生命周期更改期间工作时,引用 Activity 的最安全方法是什么?
最佳答案
首先,您可以在创建 fragment 时使用包含该 fragment 的 Activity 对 getactivity() 进行类型转换,并创建 mActivity 全局变量。
MainActivity mActivity = (MainActivity)getActivity();
您可以在 Asynctask 中进一步使用该变量,并可以进一步检查 Activity 是否完成(不检查 null)
mActivity.isFinished();
关于java - 在 AsyncTask 中安全地调用 getActivity(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36365795/