1. 程式人生 > >全局獲取Context

全局獲取Context

cnblogs 使用 傳遞 定義 應用程序 t對象 contex 自己 litepal

在很多地方都需要用到Context,但在特殊情況下無法獲取Context, 需要定義自己的Application,既可以利用我們自己的類來獲取Context

public class MyApplication exends Application{
private static Content content;
重寫父類的onCreate方法,並調用getApplicationContext()方法得到一個應用程序級別的Context
然後靜態方法將其返回
public void onCreate(){ context = getApplicationContext(); }
public static Context get Context(){ return context; } }

還要在清單文件中的application標簽中進行指定當啟動程序時初始化MyAoolication類,而不是默認的類,調用主函數Context的時候就可以MyApplication.getContext();

android:name="完整包名.MyApplication"

以上是通用情況,

LitePaly在使用的時候就要求必須在清單文件中配置

android:name="org.litepal.LitePalApplication"

會和我們的配置起沖突,但是Litepal給出了解決方案,

public class MyApplication exends Application{

    private static Content content;
重寫父類的onCreate方法,並調用getApplicationContext()方法得到一個應用程序級別的Context
然後靜態方法將其返回
    public void onCreate(){
      context = getApplicationContext();
    //把全局變量的Context對象通過參數傳遞給了LitePal,效果和在清單文件中配置LitePalApplication一樣
    listPalApplication.initalize(context); }
public static Context get Context(){ return context; } }

全局獲取Context