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.
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.
J
javaCBA
mas não ficar pior em questão de performance?
J
javaCBA
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
FelipeTorres
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.
dai eu leio o xml, e coloco como String no sharedPreferences
Solucao aceita
FelipeTorres
Isso é um dado estruturado.
Para persisti-lo, crie uma tabela num banco de dados. Gerencie usando uma classe filha de SQLiteOpenHelper .
J
javaCBA
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?
Leonardo_Dias
Cada usuário vai ter o seu próprio banco local, ele fica alocado no device do usuário.
J
javaCBA
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.
FelipeTorres
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.
J
javaCBA
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?
FelipeTorres
Não será estranho, de forma alguma. É melhor persistir.
J
javaCBA
entao de boa…vou mudar pra ver a performance. Valeu