當我們在沒有繼承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()就可以了。