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

全域性獲取Context技巧

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">在某些情況下,獲取Context並非那麼容易的一件事,有時候還是挺傷腦筋的,不過不用擔心,下面這個小技巧讓你在專案的任何地方都能夠輕鬆獲取到Context.</span>

Android提供了一個Application類,每當應用程式啟動時,系統就會自動將這個類進行初始化.而我們可以定製一個自己的Application類.以便於管理程式內一些全域性的狀態資訊,比如全域性Context.

public class MyApplication extends Application {

	private static Context context;

	@Override
	public void onCreate() {
		context = getApplicationContext();	
	/**
	 * 返回context
	 */
	public static Context getContext(){
		return context;
	}
}

程式碼非常簡單,這裡我們重寫了父類的onCreate()方法,並通過getApplicationContext()方法得到一個應用程式級別的Context,然後提供了一個靜態的getContext()方法,在這裡將剛才獲取的Context進行返回.

接下來還有一步,我們需要告知系統,當程式啟動的時候應該初始化MyApplication類,而不是預設的Application類.這一步也很簡單,在AndroidManifest.xml檔案的<application>標籤下進行指定就可以了

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