私は2つの文字列を共有設定に保存していますが、たまに何らかの理由でそれらが削除されます..これについてstackoverflowに他にもいくつか質問があることは知っていますが、それらのどれも私を助けませんでした..
共有設定に保存する方法に何か問題がありますか?
問題の原因を知っている人はいますか? 2 週間ほどで 2 回しか発生していないので、テストして、問題が解決したかどうかを確認できますか?
static void saveTitlePref(Context context, int mAppWidgetId, String text) {
SharedPreferences.Editor editor = context.getSharedPreferences(PREFS_NAME, 0).edit();
editor.putString(PREF_PREFIX_KEY + mAppWidgetId, text);
editor.apply();
}
static void saveSizePref(Context context, int mAppWidgetId, String size) {
SharedPreferences.Editor editor = context.getSharedPreferences(PREFS_NAME, 0).edit();
editor.putString(PREF_SIZE_PREFIX_KEY, size);
editor.apply();
}
私は次のようにそれらをロードします:
static String loadTitlePref(Context context, int mAppWidgetId) {
SharedPreferences prefs = context.getSharedPreferences(PREFS_NAME, MODE_PRIVATE);
String prefix = prefs.getString(PREF_PREFIX_KEY + mAppWidgetId, null);
// If there is no preference saved, get the default from a resource
if (prefix != null) {
return prefix;
} else {
return context.getString(R.string.appwidget_prefix_default);
}
}
static String loadSizePref(Context context, int mAppWidgetId) {
SharedPreferences prefs = context.getSharedPreferences(PREFS_NAME, MODE_PRIVATE);
String sizeprefix = prefs.getString(PREF_SIZE_PREFIX_KEY, null);
// If there is no preference saved, get the default from a resource
if (sizeprefix != null) {
return sizeprefix;
} else {
return "24";
}
}