Remote Service的SharedPreferences始终返回null

时间:2016-07-31 16:57:09

标签: android android-activity service broadcastreceiver sharedpreferences

当我尝试从远程服务中读取数据时,我遇到了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的读取数据提供解决方案。

1 个答案:

答案 0 :(得分:0)

由于您正在处理多个流程,因此您需要指定支持该流程的模式,如this answer所示