无法在我的服务中保存或阅读共享偏好设置。你能建议任何解决方法吗?
写:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
Set<String> set = new HashSet<String>();
for (PagerTagGattClient deviceGatt : this){
set.add(getBluetoothDevice().getAddress());
}
Editor editor = prefs.edit();
editor.putStringSet(PREF_DEVICES, set);
return editor.commit();
在onCreate上阅读服务:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
Set<String> set = new HashSet<String>();
prefs.getStringSet(PREF_DEVICES, set);
if (set.isEmpty()) Log.e(TAG, "Prefs is empty!");
阅读集总是空的。
答案 0 :(得分:2)
您需要将您读取的值实际分配给变量set
:
更改
prefs.getStringSet(PREF_DEVICES, set);
到
set = prefs.getStringSet(PREF_DEVICES, set);
第二个参数是默认值,在您的情况下为空HashSet
(您可以这样离开或更改为适当的默认值)。
答案 1 :(得分:2)
试试这个......
SharedPreferences sharedPref = this.getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putStringSet(PREF_DEVICES, set);
editor.commit();
在阅读时使用
set = prefs.getStringSet(PREF_DEVICES, set);