亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

Android中getActivity()為null的解決辦法

2020-07-26 03:16:22
字體:
來源:轉載
供稿:網友

前言

在日常開發中的時候,我們經常會使用ViewPager+Fragment進行視圖滑動,在某些部分邏輯也許我們需要利用上下文Context(例如基本的Toast),但是由于Fragment只是依附在Activity容器的一個試圖,如果需要拿到當前的Activity的上下文Context就必須通過getActivity()獲取。

然而,不知道各位程序猿有沒有遇過出現getActivity()出現null的時候導致程序報出空指針異常。

其實原因可以歸結于因為我們在:

    (一)切換fragment的時候,會頻繁被crash

    (二)系統內存不足

    (三)橫豎屏幕切換的時候

      ....

以上情況都會導致Activity被系統回收,但是由于fragment的生命周期不會隨著Actiivty被回收而被回收,因此才會導致getActivity()出現null的問題。

解決

這里總結三個解決方法:

(一)建立Context引用

     首先我們看下Fragment的生命周期:

   在Fragment的生命周期中,在生命周期處于onAttach()onDetach()之間的時候getActivity()方法才不會返回null。因此我們可以在fragment初始化的時候建立Context引用。

fragment銷毀的時候銷毀引用。

代碼如下:

 @Override public void onAttach(Activity activity) {  super.onAttach(activity);  mCtx = activity;//mCtx 是成員變量,上下文引用 }  @Override  public void onDetach() {  super.onDetach();  mCtx = null;  }

(二)合理利用getapplicationcontext()

   在方法1中使用臨時變量存儲Context上下文引用能夠一定程度解決問題。由于在Android中,Application、Service、Activity都擁有上下文,getapplicationcontext()可以獲取全局的上下文,所以只要程序不關閉,獲取的context很難為null~

(三)自定義自己的application

   第三種方法其實與第二種方法基本原理相同,即將自定義的application中,臨時存儲application擁有的上下文Context。在程序中,通過單利訪問application的時候獲取該上下文Context

具體使用如下:

(1)在配置清單注冊自己的application

<application android:name=".MyApplication" android:icon="@drawable/ic_launcher" android:label="@string/app_name" >

(2)在Application中的onCreate存儲上下文,并且創建單利。

public class MyApplication extends Application { private static MyApplication instance; @Override public void onCreate() {  super.onCreate();  instance = this;//存儲引用 } public static MyApplication getInstance(){  return instance; }}

總結

這里只是我總結的幾個處理方法,當然有其他開發者有更好的建議能夠提出來,這樣更好。大家一起技術分享,讓大家共同進步!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产成人综合精品| 久久伊人精品天天| 91精品国产综合久久香蕉922| 97国产成人精品视频| 国产精品久久久久久久久久| 亚洲国产成人91精品| 亚洲一区中文字幕在线观看| 欧美日韩精品国产| 91视频国产精品| 成人午夜两性视频| 国产精品久久久久77777| 久久人人97超碰精品888| 亚洲日本中文字幕免费在线不卡| 亚洲欧美中文字幕在线一区| 久久99久久99精品免观看粉嫩| 欧美黑人xxxx| 日本高清视频一区| 精品久久久精品| 国产精品专区一| 在线观看国产欧美| 亚洲va男人天堂| 精品国产999| 日韩精品中文字| 亚洲xxxx3d| 成人免费淫片aa视频免费| 久久久国产视频91| 性色av一区二区三区在线观看| 久热精品视频在线免费观看| 日韩性xxxx爱| 亚洲日韩欧美视频一区| 国产成人精品久久二区二区91| 日韩视频精品在线| 久久久视频在线| 久久青草福利网站| 午夜精品久久久久久久白皮肤| 国产精品69精品一区二区三区| 亚洲精品97久久| 日韩欧美aⅴ综合网站发布| 欧美一区亚洲一区| 日韩在线不卡视频| 精品国产欧美一区二区五十路| 国产精品视频男人的天堂| 亚洲色图av在线| 久久艹在线视频| 亚洲japanese制服美女| 亚洲精品视频免费在线观看| 日韩视频永久免费观看| 国产精品高潮在线| www欧美xxxx| 国产精品美女av| 国产午夜精品久久久| 亚洲欧美日韩精品久久| 亚洲精品资源在线| 欧美激情网站在线观看| 最近更新的2019中文字幕| 日韩在线观看精品| 91夜夜揉人人捏人人添红杏| 高清视频欧美一级| 国产97在线亚洲| 成人av色在线观看| 日韩精品免费在线| 色偷偷偷综合中文字幕;dd| www.99久久热国产日韩欧美.com| 亚洲成人网在线观看| 国产精自产拍久久久久久蜜| 全球成人中文在线| 欧美午夜视频一区二区| 久久五月天色综合| 亚洲综合在线小说| 久久成人精品一区二区三区| 欧美日韩成人在线视频| 日韩精品中文在线观看| 国内精品小视频在线观看| 高清一区二区三区日本久| 精品一区二区电影| 欧美在线亚洲一区| 亚洲第一视频在线观看| 国产一区二区日韩| 麻豆国产精品va在线观看不卡| 欧美日韩另类在线| 国产精品吴梦梦| 日韩电影在线观看永久视频免费网站| 亚洲一区国产精品| 日韩中文第一页| 在线播放国产一区中文字幕剧情欧美| 青青久久aⅴ北条麻妃| 色婷婷久久一区二区| 色无极影院亚洲| 欧美日韩免费在线观看| 久久成人人人人精品欧| 欧美另类在线播放| 欧美精品久久久久a| 亚洲色图25p| 欧洲成人在线观看| 欧美日韩亚洲系列| 最近2019年好看中文字幕视频| 欧美性生交xxxxx久久久| 日韩av中文字幕在线| 欧美精品久久久久久久久久| 亚洲国产另类 国产精品国产免费| 国产性色av一区二区| 欧美大片在线免费观看| 性亚洲最疯狂xxxx高清| 九九九热精品免费视频观看网站| 久久久久久久久久久成人| 俺去啦;欧美日韩| 亚洲精品www久久久| 国产丝袜一区二区三区免费视频| 成人午夜一级二级三级| 成人日韩在线电影| www日韩欧美| 秋霞午夜一区二区| 美女扒开尿口让男人操亚洲视频网站| 国产激情视频一区| 欧美在线不卡区| 久久精品国产亚洲| 欧美中文字幕在线观看| 青青久久av北条麻妃海外网| 久久久综合av| 插插插亚洲综合网| 亚洲国产欧美一区| 中文日韩在线观看| 亚洲精品国产suv| 一级做a爰片久久毛片美女图片| 日韩一二三在线视频播| 欧美成人一区二区三区电影| 国产精品自产拍在线观看中文| 97av在线视频| 55夜色66夜色国产精品视频| 91性高湖久久久久久久久_久久99| 日韩在线视频线视频免费网站| 78m国产成人精品视频| 亚洲精品91美女久久久久久久| 国产丝袜一区二区三区免费视频| 亚洲美女在线看| 亚洲精品永久免费| 亚洲综合精品一区二区| 97精品视频在线观看| 日韩欧美高清视频| 国内精品小视频在线观看| 欧美在线视频网站| 国产精品久久久久久久久免费看| 欧美电影在线观看高清| 国产精品自产拍在线观看中文| 欧美日韩国产色视频| 欲色天天网综合久久| 91免费视频网站| 亚洲欧美在线免费观看| 亚洲专区国产精品| 91tv亚洲精品香蕉国产一区7ujn| 庆余年2免费日韩剧观看大牛| 久久久国产精品亚洲一区| 久久国产精品网站| 中文一区二区视频| 国产999精品久久久影片官网| 国产视频综合在线| 日韩中文字幕视频在线观看| 精品久久久久久亚洲精品| 91夜夜未满十八勿入爽爽影院| 欧美在线观看视频| 久久久久久久一区二区| 亚洲天堂网站在线观看视频| 一区二区三区视频观看| 精品美女国产在线|