1. 程式人生 > >全域性獲取Context的技巧

全域性獲取Context的技巧

全域性獲取Context的技巧

android開發中,很多地方都要用到Context上下文這個類物件,比如:彈出 Toast

的時候需要、啟動活動的時候需要、傳送廣播的時候需要、操作資料庫的時候需要、使用通

知的時候需要等。

如果是在Activity中,那麼獲取這個context物件很容易,因為Activity本身就繼承Context,直接受用this就可以了。

但是對於比較複雜的邏輯,這些程式碼沒有放在Activity中,那麼,獲取Context就顯得不是那麼容易了。

這裡告訴大家一個技巧:

Android 提供了一個 Application 類,每當應用程式啟動的時候,系統就會自動將這個類

進行初始化。 而我們可以定製一個自己的 Application 類, 以便於管理程式內一些全域性的狀態資訊,比如說全域性 Context

1,新建一個類MyApplication繼承Application.

程式碼如下:

package com.example.networktest;
public class MyApplication extends Application {
    private static Context context;
    @Override
    public void onCreate() {
        context = getApplicationContext();
    }
    public static Context getContext() {
        return context;
    }
}

2,在 AndroidManifest.xml 檔案的<application>標籤下進行指定就可以了,程式碼如下所示:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.networktest"
android:versionCode="1"
android:versionName="1.0" >
……
<application
android:name="com.example.networktest.MyApplication"
…… >
……
</application>
</manifest>

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

個類。

這樣我們就已經實現了一種全域性獲取 Context的機制,之後不管你想在專案的任何地方

使用 Context,只需要呼叫一下 MyApplication.getContext()就可以了。