Domanda di persistenza dei dati Android

1

Ho un'app per Android in cui gli utenti hanno set di elementi e ogni elemento ha circa 10 proprietà.

Cosa faccio al momento:

    Gli oggetti
  • sono memorizzati nel database del server
  • quando l'utente esegue l'accesso, ottengo tutti gli elementi (ad esempio 37) tramite l'API e li metto in un LinkedHashSet < UserItem > (UserItem è un POJO con setter e getter)
  • poi ottengo i 37 elementi dal set e li metto nel database SQLite locale
  • quando l'utente apre la schermata "I miei articoli" nell'app, ottengo i 37 elementi dal DB SQLite locale

Stavo pensando, è una buona pratica? Potrei aggirare il passaggio 3 (memorizzando gli elementi nel database locale), ma invece mantenere la vita di tale oggetto LinkedHashSet e ottenere gli elementi direttamente da lì. Se sono d'accordo con questo suggerimento, come faccio?

Ho fatto una domanda simile a Stack Overflow ma Mi è stato detto che dovrei venire qui a chiederlo .

    
posta J. K. 09.02.2014 - 12:55
fonte

1 risposta

3

Come è stato detto nell'altra risposta, puoi mantenere il tuo LinkedHashSet POJO. In questo post , viene spiegato come mantenere una variabile globale per tutto il ciclo di vita dell'applicazione ( implica l'estensione di android.app.Application ). Questo è il modo più veloce per leggere e scrivere i tuoi dati. È possibile esporlo nuovamente alla memoria locale o al DB del server, se lo si desidera. Lo svantaggio è che se in qualche modo dovessi perdere quella memoria, le modifiche apportate all'utente andranno perse.

Se hai bisogno di sincronizzare i dati con il tuo server, consulta qui per alcuni suggerimenti su come aggiornare entrambi i dati nel dispositivo e nel server. Questo sarà più lento, come hai detto tu stesso.

Da qui puoi combinare entrambe le strategie e trovare un'ottima soluzione per la tua app. Forse è possibile programmare le routine di sincronizzazione che non sono così aggressive da influire sull'esperienza utente, forse si persiste nella memoria locale solo quando i dati cambiano. Avresti tre posizioni per archiviare i dati, con compromessi relativi alla velocità e alla sicurezza dei dati.

Buona fortuna!

    
risposta data 14.02.2014 - 20:57
fonte

Leggi altre domande sui tag