我在BroadcastReceiver上设置了首选项,但我无法在AppCompatActivity上阅读。 我确实阅读了一些帖子,但我无法做到这一点。 活动和广播接收者在同一个应用程序(相同的包名称) 在广播接收器上,我在onReceive方法上有这个代码:
SharedPreferences prefs = context.getApplicationContext().getSharedPreferences(PROPERTIES.SHARENAME,
context.MODE_PRIVATE);
prefs.edit().putBoolean("runnig", true).commit();
在活动中我有:
SharedPreferences prefs1 =getApplicationContext().getSharedPreferences(PROPERTIES.SHARENAME,
MODE_PRIVATE);
boolean corriendo= prefs1.getBoolean("running",false);
但是变量corriendo仍然是假的。
我在broadcastreceiver上尝试使用context.getShared ...,使用apply而不是commit,避免在活动中使用getApplicationContext()而我无法完成这项工作。
非常感谢!!
答案 0 :(得分:1)
看起来你写了一个错字:
比较:
prefs.edit().putBoolean("runnig", true).commit();
boolean corriendo= prefs1.getBoolean("running",false);
现在只是相关的一点:
putBoolean("runnig", true)
getBoolean("running",false)
TLDR;您正在阅读和写入不同的密钥。