經過Application配置全局的Context

我原本配置了全局變量,可是使用SharedPreferences時老是報空指針異常,報錯以下:
FATAL EXCEPTION: main
                                                                                Process: com.XXX.xxx, PID: 19292
                                                                                        java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.SharedPreferences android.content.Context.getSharedPreferences(java.lang.String, int)' on a null object reference

 

後來發現,是沒在清單文件配置Context,也就是下面的第三步。 
解決方法:java

*1.寫一個全局的單例模式的MyApplication繼承自Application 覆蓋  onCreate ,在這個方法裏面實例化Application
  public class MyApplication extends Application {
        private static MyApplication instance = null;

        public static MyApplication getInstance() {
            return instance;
        }

        @Override
        public void onCreate() {
            super.onCreate();
            instance = this;
        }
  }

 

*2.在清單文件配置全局的Context(必定要在清單文件進行配置,不然代碼會報空)
<application 
    ... ...
    android:name=".app.MyAppliction"      
    ... ...                                   
                                        ></application>

 

*3.使用的時候根據類的名稱調用Context便可

 

轉: https://blog.csdn.net/AndroidOliver/article/details/56481828vandroid

相關文章
相關標籤/搜索