Shared Preferences - max length of a single value

AndroidSharedpreferences

Android Problem Overview


I am storing String into shared preferences, but I wasn't able to find out maximal length of string I can store. Do you know this value?

Android Solutions


Solution 1 - Android

By Romain Guy From the Question Asked Here,

> Whatever the maximum length of a Java string is. So something like > Integer.MAX_VALUE chars.

I suppose while SharedPreference is an XML file stored with One Tag if you store only One Pair/Object. So there is no limit to write String in that if you think like you are writing in a file..(Theoretically)

But Actually what happens is that, while you are assigning value to SharedPreference using put/get function at that time you Reading/Writting value in String Object..so the limit becomes to store value at one time equal to Size limit of String Object of Java.

So while writting the code: Limit of SharedPreference String Size = Java String Object Size Limit(Practically)

Solution 2 - Android

Shared preference is stored in /data/data/[package_name]/shared_prefs/[app name].xml, I think there's no limit as per android architecture.

Solution 3 - Android

When I trying to save the max length string into the SharedPreferences in my device, it throw a Memory Exception when SharedPreferences data exceed 1.42 MB.

So if you have more than 1.42 MB data size to save its better to save use SQLite database.

According to developer.android.com:

> If you have a relatively small collection of key-values that you'd > like to save, you should use the SharedPreferences APIs.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionWaypointView Question on Stackoverflow
Solution 1 - AndroidMKJParekhView Answer on Stackoverflow
Solution 2 - AndroidSunil Kumar SahooView Answer on Stackoverflow
Solution 3 - AndroidmaniView Answer on Stackoverflow