第一行代碼-13.1 全局獲取Context的技巧

  背景:之前我們學習了網絡編程,然後把代碼封裝到一個類裏面,如果想要在那個類裏面獲取context用於Toast提示,是比較困難的事情。我們需要修改HttpUtil的函數的參數,在調用函數的時候把context傳進去。雖然是一個可行的方案,但是這個把責任轉移到了調用方,首先調用方能不能獲取context是一個問題,其次這也讓這個函數變得複雜。所以我們需要想辦法讓HttpUtil可以通過全局的函數來獲取context。
  第一步:定義MyApplication類,繼承Application,並重寫onCreate方法、增加getContext靜態方法:

// NetworkTest - MyApplication.java
public class MyApplication extends Application{

    private static Context mContext;

    @Override
    public void onCreate() {
        super.onCreate();
        mContext = getApplicationContext();
    }

    public static Context getContext() {
        return mContext;
    }
}

  第二步:設計好了自己的Application類,還要讓整個工程應用它,需要修改AndroidManifest.xml

<application
     android:name="com.example.networktest.MyApplication"
......

  注意包名必須寫全,否則系統會找不到這個類。
  第三步:大功告成,在需要的地方調用MyApplication.getContext()就可以了。
這裏寫圖片描述

發佈了79 篇原創文章 · 獲贊 14 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章