我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

AndroidgetActivity()为空的问题解决办法-创新互联

Android getActivity()为空的问题解决办法

创新互联专注于北川羌族网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供北川羌族营销型网站建设,北川羌族网站制作、北川羌族网页设计、北川羌族网站官网定制、小程序设计服务,打造北川羌族网络公司原创品牌,更为您提供北川羌族网站排名全网营销落地服务。

  在开发项目中有时会碰到getActivity函数为空的情况,    导致apk空指针崩溃问题,  看代码逻辑没有明显的原因。


       如果看Activity.Java、FragmentActivity.java的源码就可以找到原因。 当activity实例在后台时, 系统在回收资源时很可能回收掉Activity,  并在onSaveInstanceState函数里保存fragment的状态, 再次打开该Activity时, 在onCreate方法里取出bundle里的fragment状态, 但这时fragment对应的Activity早就不在了, 所以getActivity为空。

摘自FragmentActivity.java:     

 protected void onCreate(Bundle savedInstanceState) {
         .......
         if (savedInstanceState != null) {
             Parcelable p = savedInstanceState.getParcelable(FRAGMENTS_TAG);
             mFragments.restoreAllState(p, nc != null ? nc.fragments : null);
         }

         mFragments.dispatchCreate();
     }

     protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        Parcelable p = mFragments.saveAllState();
       if (p != null) {
          outState.putParcelable(FRAGMENTS_TAG, p);
        }
     }


标题名称:AndroidgetActivity()为空的问题解决办法-创新互联
网站路径:http://shouzuofang.com/article/dsooio.html

其他资讯