有時候我們獲取Context並不太容易,但是context又是必須的,那麼怎麼解決這個問題呢?
下面就來定義自己的Application,讓你任何時候都可以獲取到想要的全局Context,
當然也不能僅僅是就這點作用,當你的應用中需要一些全局的變量的時候,也可以放到自定義的Application中進行初始化哦!
***注意:*** 用的時候要慎用,考慮清楚什麼能在這裏初始化,什麼不能,不然後果...我也就只能呵呵了.
好了,不多說了,我們開始吧!
1.定義一個類繼承系統的Application(上代碼)
import android.app.Application;
import android.content.Context;
public class MyApplication extends Application {
private static Context context;
@Override
public void onCreate() {
super.onCreate();
context = getApplicationContext();
}
/**
* 獲取全局的Context
* @return
*/
public static Context getContext(){
return context;
}
}
這裏很簡單,就不多說了,提一下:有一些自己這時候就需要初始化的東西,也放到oncreate()中就可以了!
2.千萬不能忘記的,要在告知系統加載我們自定義的Application類在AndroidManifest.xml
中
<application
android:name="com.cml.example.MyApplication"
...>
</application>
好了,完成了!
接下來在項目的任何地方你只需要調用MyApplication.getContext()就可以得到你想要的context了.
參考:<第一行代碼>