远程服务的 SharedPreferences 总是 return null

SharedPreferences of Remote service always return null

当我尝试从远程服务读取数据时,SharedPreferences 遇到问题。

首先,在SplashScreenActivity,我的应用startbind我的RemoteService

第二个,SplashScreenActivity开始MainActivity,这个MainActivity会保存配置信息到SharedPreferences:

SharedPreferences mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor = mSharedPreferences.edit();
editor.putString("ABC_KEY", "abc");
editor.apply();

然后,MainActivity会发送Broadcast:

sendBroadcast(new Intent("PLZ_READ_DATA"));

最后,在RemoteService上面接收Broadcast,会从SharedPreferences:

读取数据
SharedPreferences mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
String str = mSharedPreferences.getString("ABC_KEY", null);

问题是 str 总是 null

这里有什么魔力?在这种情况下,谁能解释一下并给出从 SharedPreferences 读取数据的解决方案。

由于您要处理多个进程,因此您需要指定支持该模式的模式,从 this answer

可以看出