我已經爲服務類中的共享首選項設置了set和get方法。第一次運行良好,就像它第一次返回正確的值,但之後它返回空值。首先返回正確的值後從sharedpreference獲得空值
我的代碼:
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();
}
}
我不明白爲什麼發生問題。我嘗試了很多,但沒有找到解決辦法。請幫我解決這個問題
你都sharedpreference是不同的。 1)當你存儲值2)當你清除sp – Piyush
如何?你能解決這個問題嗎? ?但同樣的代碼在另一個項目中運行良好 – AAA
使用'SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);'然後''prefs.edit()。clear()。commit();'同時檢查你的上下文不能'空' – Piyush