Android 首先返回正确的值后,从SharedReference获取空值
我为服务类中的共享首选项创建了set和get方法。第一次运行良好,就像它第一次返回正确的值,但之后返回空值 我的代码:Android 首先返回正确的值后,从SharedReference获取空值,android,sharedpreferences,Android,Sharedpreferences,我为服务类中的共享首选项创建了set和get方法。第一次运行良好,就像它第一次返回正确的值,但之后返回空值 我的代码: public class ServiceClass extends Service { @Override public void onCreate() { super.onCreate(); } @Override public int onStartCommand(Intent intent, int flags
public class ServiceClass extends Service {
@Override
public void onCreate() {
super.onCreate();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
context=getApplicationContext();
return START_STICKY;
}
@Override
public void onDestroy() {
super.onDestroy();
LocalBroadcastManager.getInstance(context).sendBroadcast(new Intent("Notification"));
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
//sharedpreference
public static void setDefaults(String key, String value, Context context) {
SharedPreferences prefs =
PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor editor = prefs.edit();
editor.clear();
editor.putString(key, value);
editor.apply();
}
public static String getDefaults(String key, Context context) {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
return preferences.getString(key, null);
}
public static void ClearAllPreferences(Context context){
//remove all your prefs
context.getSharedPreferences("prefs", 0).edit().clear().commit();
}
}
我不明白为什么会发生这个问题。我试了很多,但没有找到解决办法。请帮我解决这个问题你的编码技术不好试试这段代码,它会很好用的
public class ServiceClass extends Service {
Context context;
static SharedPreferences prefs;
static SharedPreferences.Editor editor;
@Override
public void onCreate() {
super.onCreate();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
context = getApplicationContext();
prefs = context.getSharedPreferences("prefs", MODE_PRIVATE);
return START_STICKY;
}
@Override
public void onDestroy() {
super.onDestroy();
LocalBroadcastManager.getInstance(context).sendBroadcast(new Intent("Notification"));
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
//sharedpreference
public static void setDefaults(String key, String value, Context context) {
editor = prefs.edit();
editor.putString(key, value);
editor.commit();
}
public static String getDefaults(String key, Context context) {
return prefs.getString(key, null);
}
public static void ClearAllPreferences(Context context) {
//remove all your prefs
prefs.edit().clear().commit();
}
}您的两个SharedReference不同。1) 当您存储值时2)当您清除sphow时?你能解决这个问题吗?但是同一代码在另一个项目中运行良好wellUse
SharedReferences prefs=PreferenceManager.GetDefaultSharedReferences(上下文)然后是prefs.edit().clear().commit()
还要检查您的上下文不能为null
@AAA检查以上注释您能告诉我您在哪里以及如何使用此共享首选项吗??另外,请告诉我们有关您的SharedReferences
usagescore for code skills not good的此项服务的流程@AAA口袋里有很多东西要学。。。一个精确的机会