我得到一个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()
因此,如果您需要一个活动实例,请尝试执行getActivity()或getContext()