亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

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

     例如: 

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

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

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

相關(guān)文章

  • Android基礎(chǔ)知識(shí)及線性布局介紹

    Android基礎(chǔ)知識(shí)及線性布局介紹

    大家好,本篇文章主要講的是Android基礎(chǔ)知識(shí)及線性布局介紹,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-01-01
  • android編程實(shí)現(xiàn)添加文本內(nèi)容到sqlite表中的方法

    android編程實(shí)現(xiàn)添加文本內(nèi)容到sqlite表中的方法

    這篇文章主要介紹了android編程實(shí)現(xiàn)添加文本內(nèi)容到sqlite表中的方法,結(jié)合實(shí)例較為詳細(xì)的分析了Android針對(duì)txt文本文件的讀取及SQL數(shù)據(jù)庫(kù)操作的相關(guān)技巧,需要的朋友可以參考下
    2015-11-11
  • 詳解Retrofit Interceptor(攔截器) 攔截請(qǐng)求并做相關(guān)處理

    詳解Retrofit Interceptor(攔截器) 攔截請(qǐng)求并做相關(guān)處理

    本篇文章主要介紹了詳解Retrofit Interceptor(攔截器) 攔截請(qǐng)求并做相關(guān)處理,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • Android?任務(wù)棧機(jī)制詳解

    Android?任務(wù)棧機(jī)制詳解

    這篇文章主要為大家介紹了Android?任務(wù)棧機(jī)制詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • Android編程使用android-support-design實(shí)現(xiàn)MD風(fēng)格對(duì)話框功能示例

    Android編程使用android-support-design實(shí)現(xiàn)MD風(fēng)格對(duì)話框功能示例

    這篇文章主要介紹了Android編程使用android-support-design實(shí)現(xiàn)MD風(fēng)格對(duì)話框功能,涉及Android對(duì)話框、視圖、布局相關(guān)操作技巧,需要的朋友可以參考下
    2017-01-01
  • Android如何創(chuàng)建可拖動(dòng)的圖片控件

    Android如何創(chuàng)建可拖動(dòng)的圖片控件

    這篇文章主要為大家詳細(xì)介紹了Android如何創(chuàng)建可拖動(dòng)的圖片控件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Android性能優(yōu)化之Bitmap圖片優(yōu)化詳解

    Android性能優(yōu)化之Bitmap圖片優(yōu)化詳解

    在Android項(xiàng)目的imageview中使用大圖bitmap時(shí)會(huì)占據(jù)很大的內(nèi)存,而且在很多時(shí)候我們并不需要顯示原圖那么大的圖片, 所以我們需要對(duì)圖片進(jìn)行優(yōu)化,這篇文章主要介紹了Android性能優(yōu)化之Bitmap圖片優(yōu)化的相關(guān)資料,需要的朋友們下面來(lái)一起看看吧。
    2017-04-04
  • Android 通過(guò)騰訊TBS實(shí)現(xiàn)文件預(yù)覽功能

    Android 通過(guò)騰訊TBS實(shí)現(xiàn)文件預(yù)覽功能

    這篇文章主要介紹了Android 通過(guò)騰訊TBS實(shí)現(xiàn)文件預(yù)覽功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • android音頻編輯之音頻裁剪的示例代碼

    android音頻編輯之音頻裁剪的示例代碼

    本篇文章主要介紹了android音頻編輯之音頻裁剪的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • Android內(nèi)存泄漏檢測(cè)工具LeakCanary

    Android內(nèi)存泄漏檢測(cè)工具LeakCanary

    在Android的性能優(yōu)化中,內(nèi)存優(yōu)化是必不可少的點(diǎn),而內(nèi)存優(yōu)化最重要的一點(diǎn)就是解決內(nèi)存泄漏的問(wèn)題,在Android的內(nèi)存泄漏分析工具也不少,比如PC端的有:AndroidStudio自帶的Android?Profiler、MAT等工具;手機(jī)端也有,就是我們今天要介紹的LeakCanary
    2023-04-04

最新評(píng)論