【发布时间】:2015-04-29 14:54:08
【问题描述】:
我有一个扩展应用程序的类。当我尝试使用“getApplicationContext”或使用“getBaseContext”获取该类的上下文时,上下文始终为空。
我需要上下文才能使用“getSharedPreferences”。
打印的错误是:
原因:java.lang.NullPointerException 在 android.content.ContextWrapper.getApplicationContext(ContextWrapper.java:109)
我做错了什么或者我可以在没有上下文的情况下使用“getSharedPreferences”的其他方式(如果可能的话)?
感谢您的帮助。
用一些代码编辑:
我正在我的主类中初始化类“DeviceInfo”。 “DeviceInfo”类扩展了应用程序。在它的构造函数中我试图做:
protected DeviceInfo() {
context = getApplicationContext();
}
wich 给了我前面提到的同样的错误。
这是给我带来麻烦的主线......
SharedPreferences key = getApplicationContext().getSharedPreferences("keys", Context.MODE_PRIVATE);
最终编辑:谢谢大家,我接受了你们的所有意见,并意识到我的做法完全不对。我更改了所有代码,现在它可以工作了,再次感谢。
【问题讨论】:
-
请分享您的代码!
-
您是在 onCreate() 之外还是之前调用该方法?
-
从哪里调用方法 getApplicationContext() ?
-
我编辑了我的问题,我尝试使用“this”代替,同样的错误。我也不能在 OnCreate 中调用它,因为我的类扩展了 Application 而不是 Activity,但我可能错了
-
'this' 不会有任何帮助。 'this' 是隐含的。
标签: java android android-context