全局獲取Context
阿新 • • 發佈:2017-07-23
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