共有設定に文字列を保存していますが、保存できる文字列の最大長を見つけることができませんでした。この値を知っていますか?
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(実用的に)
共有設定は/data/data/[package_name]/shared_prefs/[app name].xml
に保存されます。Androidアーキテクチャごとに制限なしがあると思います。
デバイスのSharedPreferencesに最大長の文字列を保存しようとすると、SharedPreferencesデータが1.42 MBを超えると、メモリ例外がスローされます。
そのため、1.42 MBを超えるデータサイズを保存するには、SQLiteデータベースを使用してください。
developer.Android.com によると:
保存するKey-Valueの比較的小さなコレクションがある場合は、SharedPreferences APIを使用する必要があります。