簡體   English   中英

Android-從活動到廣播接收器獲取首選項

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM