【发布时间】:2019-07-10 08:21:40
【问题描述】:
我正在做一个安卓项目。我想在 android 应用程序被杀死时推送通知。所以,我正在创建 BroadcastReceiver 和 Service 类。他们在工作。但是,我有一个问题。
这个问题是,当用户登录我的应用程序时;我用 SharedPreferences 来存储这个值。但是,当我杀死应用程序时,这个 SharedPreferences 取“null”值。
java.lang.NullPointerException:尝试调用接口方法 'java.lang.String android.content.SharedPreferences.getString(java.lang.String, java.lang.String)' 在空对象引用上
当我搜索时,人们说:“editor.clear();”但它不起作用。我能做什么?
我的登录类:
public static SharedPreferences UserDetailsSP,
UserDetailsSP = getSharedPreferences("UserDetails", MODE_PRIVATE);
SharedPreferences.Editor UserDetailsPreferencessEdit = UserDetailsSP .edit();
UserDetailsPreferencessEdit.clear();
UserDetailsPreferencessEdit.putString("UserName", A);
UserDetailsPreferencessEdit.commit();
我用这个调用其他java类:
String a1 = Login.UserDetailsSP.getString("UserName","A");
【问题讨论】:
-
您的登录课程是活动的吗?否则你需要传递上下文来创建 SharedPreference obj。
-
@ZarNiMyoSettWin 是的,登录是活动;调用 java 类不仅仅是 java 类的活动。
标签: java android sharedpreferences shared