当我尝试从远程服务中读取数据时,我遇到了SharedPreferences
的问题。
首先,在SplashScreenActivity
,我的应用start
和bind
我的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
的读取数据提供解决方案。