最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android getActivity()為空的問題解決辦法

 更新時間:2017年07月21日 14:19:51   投稿:lqh  
這篇文章主要介紹了Android getActivity()為空的問題解決辦法的相關(guān)資料,導(dǎo)致apk空指針崩潰問題,很嚴(yán)重的問題,為了解決這問題,上網(wǎng)搜索了很多資料,需要的朋友可以參考下

Android getActivity()為空的問題解決辦法

  在開發(fā)項目中有時會碰到getActivity函數(shù)為空的情況,    導(dǎo)致apk空指針崩潰問題,  看代碼邏輯沒有明顯的原因。

       如果看Activity.Java、FragmentActivity.java的源碼就可以找到原因。 當(dāng)activity實例在后臺時, 系統(tǒng)在回收資源時很可能回收掉Activity,  并在onSaveInstanceState函數(shù)里保存fragment的狀態(tài), 再次打開該Activity時, 在onCreate方法里取出bundle里的fragment狀態(tài), 但這時fragment對應(yīng)的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);
        }
     }

從源碼可以看出解決方案: 1、  覆蓋onSaveInstanceState函數(shù), 不保存到bundle; 2、  覆蓋onCreate方法, 刪除FRAGMENTS_TAG參數(shù)。(注意:Activity和FragmentActivity對FRAGMENTS_TAG的定義不同

     例如: 

public class TestActivity extends FragmentActivity {     
       @Override
       protected void onCreate(Bundle savedInstanceState) {
           if (savedInstanceState != null) {
               savedInstanceState.remove("android:support:fragments");  //注意:基類是Activity時參數(shù)為android:fragments, 一定要在super.onCreate函數(shù)前執(zhí)行?。?!
           }
           super.onCreate(savedInstanceState);
          ...
       }

       //或者
       protected void onSaveInstanceState(Bundle outState) {
           //super.onSaveInstanceState(outState);  //注釋掉該方法, 即不保存狀態(tài)
       }
   

以上就是Android getActivity()為空的問題解決辦法的講解,如有疑問請大家留言或到本站社區(qū)討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

最新評論

梁山县| 文登市| 宜兰市| 安溪县| 色达县| 济源市| 新野县| 敦化市| 德钦县| 舞钢市| 天镇县| 巩留县| 丽江市| 自治县| 杭州市| 屯留县| 资中县| 白山市| 宜良县| 舟山市| 科技| 蕉岭县| 忻州市| 资中县| 定兴县| 桂阳县| 涞水县| 郓城县| 白水县| 博客| 平武县| 苏州市| 布尔津县| 麻城市| 锡林浩特市| 神农架林区| 出国| 叙永县| 兴义市| 田阳县| 焦作市|