java - 在 AsyncTask 中安全地调用 getActivity()

标签 java android android-asynctask

当我让应用程序在后台运行然后返回到屏幕上显示该应用程序时,我的应用程序不断崩溃。我相信这与我在 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/

相关文章:

java - 获取存储过程的小数输出参数时的 JDBC 异常

java - 向 arrayList 添加标记会导致应用程序崩溃

java - 使用httpclient登录Xing

android - 如何在 ConstraintLayout 中将 TextView 放置在 ImageVew 之上

android - 约束布局中的 Barrier 和 Guideline 有什么区别?

android - 在 Android 中检索 AsyncTask 方法内的值

java - 使用 Java Request Sampler 时如何获取不同监听器中使用的延迟、采样时间、字节和其他此类变量

javascript - React Native 嵌套导航的标题

android - 一段时间后 Android 应用程序滞后

android - 无法将 null 传递给 execute(); android 4.0中AsyncTask的方法