4

Setアプリケーションを再起動した後、一部の値が失われるように保存されていることがわかりました。なんで?これは Android API のバグですか? 誰かが文字列をデータベースに保存することを勧めました。まだテストしていませんが、このアドバイスは問題の解決策だと思います。getStringSetとはどうputStringSetですか?

4

3 に答える 3

6

私の理解では、それはバグです。問題は、セットを保存しようとすると、保存しようとしている変更されたセットと、SharedPreferences に保存されている現在のセットが Android によって比較されることです。そして、それらが同じオブジェクト (同じ参照を持つ) である場合、新しいオブジェクトは無視されます。

回避策は、セットを保存する前に新しいコピーを作成することです。

詳細は次のとおりです。問題はhttps://code.google.com/p/android/issues/detail?id=27801で送信されます。

于 2013-03-28T15:11:23.700 に答える
4

SharedPreferences.Editor エディター = 設定.edit();
editor.remove(キー);
editor.commit();
editor.putStringSet(キー、値);
editor.commit();

于 2013-10-16T02:06:31.263 に答える
0

SharedPreferences を使用して同じ問題が発生しました。Android API にバグがあるようです。ここに小さな投稿をしました

私にとって最も簡単な方法は、それを削除してコミットし、次に配置して再度コミットすることでした

于 2013-08-25T16:22:58.357 に答える