全域性獲取Context技巧
阿新 • • 發佈:2019-02-04
<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>