美文网首页
20170524 Android 如何全局获取Context 遇

20170524 Android 如何全局获取Context 遇

作者: 中華田園雞 | 来源:发表于2017-05-24 16:06 被阅读0次

2017年5月24日 (周三) 大雨(超j8大)


自定义了一个类 App类 继承了Application 类 定义一个静态变量public static Context context;


import android.content.Context;  
public class App extends Application {  
   private static Context context;  
   @Override  
   public void onCreate() {  
       context = getApplicationContext();  
   }  
}  

但是在调用APP.context时程序报错奔溃

开始以为是调用静态变量 未实例化App 所以没调用onCreate()所以未执行到context = getApplicationContext();所以没获取到contenxt的原因 于是对App类做了稍微微的调整

import android.content.Context;  
public class App extends Application {  
    private static Context context;  
    @Override  
    public void onCreate() {  
        context = getApplicationContext();  
    }  
    public static Context getContext(){  
        return context;  
    }  
}  
调用:Context context=new App().getContext();

按常理来说 类实例化后执行了onCreate()应该获取到了getApplicationContext()
但是...
程序依然报错闪退

妈卖批

于是采用了万能的问题解决方法

万能问题解宝典
在查阅了大量资料后最终发现了问题
原来是AndroidManifest.xml文件中未对自定义的App类进行初始化
<application>中添加了一行android:name="com.example.administrator.App"(你自定义的那个类名) 告知系统当程序启动的时候应该初始化App类,而不是系统默认的Application
 <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        android:name="com.example.administrator.App" //这一行!!!!!
       ></application>

执行到Context context=App.context;
成功获取到系统的Context

相关文章

网友评论

      本文标题:20170524 Android 如何全局获取Context 遇

      本文链接:https://www.haomeiwen.com/subject/jrrnxxtx.html