Varias informações recebidas

Pessoal,
tenho um web service rest comunicando com uma aplicação android. O ws envia um xml com várias informações que serão utilizadas em vários momentos da app android.
Queria saber qual a melhora forma de armazenar várias informações no android.
Eu adiciono no preferences.

Tem alguma forma melhor?

Você pode usar o SQLite, que é o banco local da aplicação.

Existe uma biblioteca muito boa pra isso, chamada: CupBoard

da uma olhada:

Abraços.

mas não ficar pior em questão de performance?

na verdade, o que armazeno no share é dados do login para navegação. Não serão dados permanente.
Uma vez que varios usuarios diferentes podem acessar no mesmo app

Caso os seus dados não sejam estruturados (como parece ser o caso da sua app), pode salvá-los num SharedPreferences ou até mesmo num cache.

Dê uma olhada na documentação falando sobre as formas disponíveis de persistência no Android.

mas eu guardo no shared preferences. Só que são varias informações.

Só que por ser muitas informações, fica um código grande e feio.

Queria saber se tem algo mais interessante que isso

Seja mais específico então:

Quais dados você guarda no shared preferences?
Como é o formato desses dados?
Quantas informações você espera guardar?

eu recebo um xml, por exemplo:

<usuario>
    <nome></nome>
    <login></login>
    <alterar_senha></alterar_senha>
    <acessos>
       <acesso>
            <admin></admin>
            <redirect></redirect>
            <permissao></permissao>
       </acesso>
       <acesso>
            <admin></admin>
            <redirect></redirect>
            <permissao></permissao>
       </acesso>       
   </acessos>
</usuario>

dai eu leio o xml, e coloco como String no sharedPreferences

Isso é um dado estruturado.

Para persisti-lo, crie uma tabela num banco de dados. Gerencie usando uma classe filha de SQLiteOpenHelper .

mas essa que é a questão… persistir seria melhor que colocar no shared?

lembrando que são dados de acesso, mas posso acessar cada hora com um usuário diferente.
Ficar persistindo, não demandaria muito mais?

Cada usuário vai ter o seu próprio banco local, ele fica alocado no device do usuário.

sim eu sei…na verdade a pergunta do topico tomou outra proporção.
Não queria persistir informação em banco, eu sei como funciona e já implementei dessa forma.

Eu queria alguma forma melhor de armazenar informações no shared.
Mas persistir dados de login, não é bacana. Essas informações mudam constantemente, e não vejo vantagem nisso.

O problema é ficar armazenando diversas strings. Tentei achar algo que armazenasse um objeto ou um array.

O shared preferences não foi feito para persistir esse tipo de dado que você quer.
A ideia desse arquivo é guardar informação do tipo chave-valor. Quando o “valor” se torna um XML da vida, já está indo por um caminho estranho.

Você até pode usá-lo, mas precisará criar uma estrutura tal que o código feito torna essa solução menos elegante do que usar persistência em banco.

mas eu ficar toda hora dando update no banco não seria estranho?? visto que as informações do login podem variar constantemente?
Tem informações de login que vão variar (por tipo de acesso: celular, desktop, ipad)

Mesmo assim, seria melhor persistir?

Não será estranho, de forma alguma. É melhor persistir.

entao de boa…vou mudar pra ver a performance. Valeu