全局獲取Context上下文對象的技巧


當我們在沒有繼承Context類的時候需要獲取上下文Context對象,就不能通過getApplicationContext()方法獲取

繼承體系如下:

Objece

  |--Context

    |--ContextWrapper

      |--Application

所以如果我們想在自定義的類中獲取上下文對象的方法就是:

1.創建一個類繼承Application類:

public class MyApplication extends Application{
    private static Context context=null;
    @Override
    public void onCreate() {
        context=getApplicationContext();
    }
    public static Context getContext(){
        return context;
    }
}

2.接下來我們需要告知系統,當程序啟動的時候應該初始化 MyApplication 類,而不是默

認的 Application 類。這一步也很簡單,在 AndroidManifest.xml 文件的<application>標簽下進
行指定就可以了,代碼如下所示:(在application標簽下指定name的屬性)

<application
        android:name="com.example.ts.jiqiao.MyApplication"
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity

注意這里在指定 MyApplication 的時候一定要加上完整的包名,不然系統將無法找到這個類。

 

這樣我們就已經實現了一種全局獲取 Context 的機制,之后不管你想在項目的任何地方
使用 Context,只需要調用一下 MyApplication.getContext()就可以了。


免責聲明!

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



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