java – 在活动执行时,对活动的Android weakReference变为null

前端之家收集整理的这篇文章主要介绍了java – 在活动执行时,对活动的Android weakReference变为null前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我得到一个NullPointerException,我无法理解为什么会发生这种情况. mainActivityWeakReference.get()似乎返回null.

所以我的猜测是重新创建Activity并且引用变量是
加载类后设置为null,并且只有在调用onCreate方法后才更新引用.但我不明白的是,我正忙于在参考指向的活动中执行指令
然而引用为空.

活动可以在短时间内共存,我该如何处理这种情况.
对我来说,似乎简单的空检查是不够的
处理问题.也许我应该叫完();

public class MainActivity extends android.support.v7.app.AppCompatActivity {

  private WeakReference

我的堆栈跟踪:

java.lang.NullPointerException: Attempt to read from field 'android.os.Handler android.support.v4.a.m.a' on a null object reference
    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1476)
    at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:490)
    at za.co.entersekt.nedbank.MainActivity.handleAction(MainActivity.java:297)

更多细节补充:

public abstract class FragmentManager {
....

public boolean execPendingActions() {
        if (mExecutingActions) {
            throw new IllegalStateException("Recursive entry to executePendingTransactions");
        }

        if (Looper.myLooper() != mActivity.mHandler.getLooper()) {<
最佳答案
这是因为根据定义,弱引用是一个引用,它不会保护引用的对象不被垃圾收集器收集
因此,如果您需要一个活动实例,请尝试执行getActivity()或getContext()
原文链接:/android/429937.html

猜你在找的Android相关文章