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://m.newbst.com/article0/dsooio.html
成都網站建設公司_創新互聯,為您提供網站設計公司、品牌網站設計、電子商務、營銷型網站建設、App設計、定制開發
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯