web-dev-qa-db-ja.com

共有設定-単一の値の最大長

共有設定に文字列を保存していますが、保存できる文字列の最大長を見つけることができませんでした。この値を知っていますか?

41
Waypoint

Romain Guy質問から ここで質問

Java文字列の最大長が何であれ、Integer.MAX_VALUE文字のようなものです。

1つのペア/オブジェクトのみを保存する場合、SharedPreferenceは1つのタグで保存されたXMLファイルであると思います。したがって、ファイルに書き込みをしているように思われる場合は、Stringを書き込むことに制限はありません。(理論的に)

しかし、実際に起こることは、あなたが値を割り当てている間にSharedPreferenceその時にput/get関数を使用して読み取り/ String Objectの値の書き込み .. solimitは、JavaのString Objectのサイズ制限に等しい値を一度に格納するようになります。

したがって、コードを記述している間:SharedPreference String Size = Java String Object Size Limit(実用的に)

73
MKJParekh

共有設定は/data/data/[package_name]/shared_prefs/[app name].xmlに保存されます。Androidアーキテクチャごとに制限なしがあると思います。

19

デバイスのSharedPreferencesに最大長の文字列を保存しようとすると、SharedPreferencesデータが1.42 MBを超えると、メモリ例外がスローされます。

そのため、1.42 MBを超えるデータサイズを保存するには、SQLiteデータベースを使用してください。

developer.Android.com によると:

保存するKey-Valueの比較的小さなコレクションがある場合は、SharedPreferences APIを使用する必要があります。

4
mani