我目前正在在主活动的SharedPreference中保存值:
final SharedPreferences prefs =getSharedPreferences(
APP_CONSTANT, MODE_PRIVATE);
final String someKey = "com.APP.NAME.myApp";
Date date = Calendar.getInstance().getTime();
prefs.edit().putString(someKey , date.toString());
prefs.edit().apply();
现在,当我启动BroadcastReceiver的onRecieve函数并尝试从SharedPreferences中获取someKey的值时,它总是空值。
final SharedPreferences prefs =getSharedPreferences(
APP_CONSTANT, MODE_PRIVATE);
final String someKey = "com.APP.NAME.myApp";
final String someKeyValue = prefs.getString(someKey, null);
someKeyValue始终为null。请告知如何从Activity在BroadcastReceiver中访问它。
我也尝试过在BroadcastReceiver中使用getApplicationContext,但它在BroadcastReceiver中不起作用。我了解到Activity和BroadcastReceiver都具有不同的上下文,因此我如何在它们两者中共享sharedpreference值。请帮助。
我忘了在行尾使用.apply()
prefs.edit().putString(someKey , date.toString()).apply();
完成此操作后,这些值不再为null。