Fragment XXXXXX{xxxxxxxxx} not attached to Activity

Monkey跑出如下异常。导致Settings Crash

 E AndroidRuntime:  at android.app.Fragment.getResources(Fragment.java:814)
 E AndroidRuntime:  at android.app.Fragment.getText(Fragment.java:826)
 E AndroidRuntime:  at com.android.settings.wifi.WifiSettings.setOffMessage(WifiSettings.java:767)
 E AndroidRuntime:  at com.android.settings.wifi.WifiSettings.onWifiStateChanged(WifiSettings.java:825)
 E AndroidRuntime:  at com.android.settingslib.wifi.WifiTracker$MainHandler.handleMessage(WifiTracker.java:581)

这个异常是这里抛出来的:

frameworks/base/core/java/android/app/Fragment.java
809    /**
810     * Return <code>getActivity().getResources()</code>.
811     */
812    final public Resources getResources() {
813        if (mHost == null) {
814            throw new IllegalStateException("Fragment " + this + " not attached to Activity");
815        }
816        return mHost.getContext().getResources();
817    }
818

那么就说明mHost为null。mHost为什么是Null呢,什么情况下不是Null呢?

432    // Activity this fragment is attached to.
433    FragmentHostCallback mHost;

这里的说明意思是Fragment需要Attach的Activity,如果mHost为空,那么就是Fragment还没attach到Activity呗。

避免如下问题可以通过先判断mHost是否,当然系统已经给你写好了,你直接调用就ok了。

894    /**
895     * Return true if the fragment is currently added to its activity.
896     */
897    final public boolean isAdded() {
898        return mHost != null && mAdded;
899    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值