2011-12-15 13 views
24

Sto memorizzando String in preferenze condivise, ma non sono stato in grado di trovare la lunghezza massima della stringa che posso memorizzare. Conoscete questo valore?Preferenze condivise - lunghezza massima di un singolo valore

Grazie

Waypoint

+0

Se è davvero enorme, come sopra i 10 kilobyte, potresti voler salvarlo in un altro modo, magari un file su disco. – Fred

risposta

53

Con Romain Guy dalla questione Asked Here,

Qualunque sia la lunghezza massima di una stringa Java è. Quindi qualcosa come caratteri Integer.MAX_VALUE.

Suppongo che SharedPreferene sia un file XML memorizzato con un tag se si memorizza solo una coppia/oggetto. Quindi non v'è alcun limite di scrivere String nel senso che se si pensa come si scrive in un file .. (Teoricamente)

Ma realtà quello che succede è che, mentre si sta assegnando il valore a SharedPreference utilizzando put/get funzione in quel momento Valore di lettura/scrittura nell'oggetto stringa .. così il limite diventa il valore di archiviazione in una sola volta uguale al limite di dimensione dell'oggetto stringa di Java.

Così, mentre scrivendo il codice: Limite di SharedPreference String Size = Java String Oggetto Limite dimensioni (praticamente)

+1

'Integer.MAX_VALUE' è 2147483647. – Fred

14

preferenza in comune è memorizzato in /data/data/[package_name]/shared_prefs/[app name].xml, penso che ci sia alcun limite come per l'architettura di Android.

0

Quando si cerca di salvare la stringa di lunghezza massima nelle SharedPreferences nel mio dispositivo, si gettano una Memory Eccezione quando i dati di SharedPreferences superano 1,42 MB.

Quindi, se si dispone di più di 1,42 MB dimensioni dei dati per risparmiare è meglio salvare utilizzare il database SQLite.

Secondo developer.android. "Se si dispone di una raccolta relativamente piccola di valori-chiave che si desidera salvare, è necessario utilizzare le API SharedPreferences."

Problemi correlati