我正在尝试将少量二进制数据作为字符串写入 SharedPreferences。我可能在这里严重误解了编码,但这是我想要做的:
String str = new String("hi there!".getBytes(), "ISO-8859-1");
SharedPreferences p = context.getSharedPreferences("foo", MODE_PRIVATE);
Editor e = p.edit();
e.putString("string", str);
e.putBoolean("worked", true);
e.commit();
... later on after an app restart...
// the shared prefs file will be empty upon the next app start:
SharedPreferences p = context.getSharedPreferences("foo", MODE_PRIVATE);
Log.d(TAG, "String value present?: " + p.getString("string", null));
Log.d(TAG, "Boolean flag present?: " + p.getBoolean("worked", false));
commit() 调用返回 true,一切似乎都正常。下次我启动这个演示应用程序时,我读取了这个共享首选项实例的内容,它完全是空的。如果我不使用“ISO-8859-1”编码,那么一切都按预期工作,共享首选项文件中包含键值。
共享首选项不能与使用该编码的字符串一起使用吗?
谢谢