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()为空的问题解决办法-创新互联
分享链接:https://www.cdcxhl.com/article0/dsooio.html

成都网站建设公司_创新互联,为您提供网站设计公司品牌网站设计电子商务营销型网站建设App设计定制开发

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

微信小程序开发