如何从Activity到BroadcastReceiver获取SharedPreference值?

问题描述 投票:0回答:1

我目前正在在主活动的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值。请帮助。

android sharedpreferences
1个回答
0
投票

我忘了在行尾使用.apply()

       prefs.edit().putString(someKey , date.toString()).apply();

完成此操作后,这些值不再为null。

© www.soinside.com 2019 - 2024. All rights reserved.