[英]Android - Get preference from activity to broadcast receiver
我正在開發一個Android應用程序,但是有問題。 當我嘗試從Activity中獲取保存的首選項並在BroadcastReceiver
使用它時,它告訴我我要查找的字符串不存在。
這是我在“活動”中保存首選項的方式:
private void SavePreferences(String key, String value) {
SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(key, value);
editor.commit();
}
這就是我嘗試在BroadcastReceiver
獲得首選項的方法:
String pref = PreferenceManager.getDefaultSharedPreferences(context)
.getString("MEM1", "Does not exist");
MEM1
是我之前保存的字符串。
我的問題是,當我閱讀pref
,得到的是默認值Does not exist
,而不是我的首選值( MEM1
)。 有人可以指出我要去哪里了嗎?
Activity.getPreferences(mode);
返回特定於該活動的SharedPreferences實例(例如,支持該XML文件的名稱將與該活動相同),而默認共享首選項特定於該應用程序(XML名稱將基於您的包名稱) )。
每次檢索SharedPreferences時都提供一個自定義文件名,或者堅持默認設置。
您應該使用..
private void SavePreferences(String key, String value){
SharedPreferences sharedPreferences = getPreferences("my_prefs", MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(key, value);
editor.commit();
}
接着
String pref = getSharedPreferences("my_prefs", MODE_PRIVATE).getString("MEM1", "Does not exist");
還要確保您的密鑰是正確的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.