在Fragment里面調用getActivity()報null


  看友盟的錯誤日志發現又出現了NullPointerException,然后去看代碼,發現只有是上下文有空的可能,但是因為以前已經發生過這種情況所以上下文我都是在創建Fragment對象的時候從Activity里面傳過來的,而且我測試了多次,沒有問題,然后在網上找資料發現很多getActivity()為空的情況,發現我忽略了一個問題就是:如果app長時間在后台運行,再次進入app的時候可能會出現crash,Activity可能被系統回收然后重建,但是Fragment不會隨着Activity的回收而被回收,創建的Fragment會被保存到Bundle里面,從而導致Fragment丟失對於的Activity.

      為了解決這個問題我想到一個解決辦法就是當Activity銷毀的時候綁定的Fragmetn同時銷毀,在Activity里面重寫onSaveInstanceState方法,並注釋掉super.onSaveInstanceState(outState),讓Activity不保存Fragment的狀態.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM