Quale sarà il modo migliore per il recupero dei dati sull'applicazione che deve gestire una quantità limitata di dati.?

0

Questa non è una domanda di codice, dato che non sto aggiungendo alcun codice qui. Dal momento che, aggiungendo i miei frammenti di codice, questa domanda sarebbe davvero lunga. Invece, sono piuttosto interessato a conoscere modi migliori per il recupero dei dati sull'applicazione che deve gestire una quantità limitata di dati che non viene aggiornata regolarmente. Prendiamo questo esempio:

Sto scrivendo un'applicazione che ottiene una pianificazione come XML dal server. Ho scritto una logica per analizzare la versione XML e aggiornare il database solo se la versione è più recente della versione locale. Sebbene l'aggiornamento sia controllato automaticamente / manualmente su base giornaliera in base alle preferenze dell'utente, l'aggiornamento della versione effettiva avviene solo una volta ogni pochi mesi. Dal momento che, questo viene fatto da qualche altra autorità che non fornisce API ma, piuttosto, informa pubblicamente sulle loro modifiche.

L'XML effettivo contiene un "(n numero di gruppi) (giorni in una settimana) (n numero di programmi)". Il gruppo è in genere 6 e il numero di pianificazione è in genere 2. Quindi in pratica di solito ci sono solo circa 100 stringhe.

Ora, anche se al momento ho usato SQLite. Voglio sapere come fare l'aggiornamento sul database. Dovrei mostrare la finestra di dialogo dell'avanzamento che l'applicazione sta aggiornando e uscire dall'app quando è terminata? Poiché i miei aggiornamenti non sono frequenti, non penso che ciò danneggi davvero l'esperienza utente, ma c'è qualche modi migliori per farlo? Perché non voglio che venga eseguito l'aggiornamento quando l'utente sta effettuando una ricerca che viene eseguita utilizzando il database. Ciò causerà un'eccezione già aperta del database. Almeno prima ho affrontato questo problema.

È preferibile analizzare l'XML ogni volta che l'utente vuole visualizzare determinate cose o utilizzare SQLite? Dato che, per creare elenchi, faccio un sacco di uso dell'adattatore nella mia app, questo si degraderà la prestazione?

Sarebbe davvero di grande aiuto se qualcuno mi può dare una migliore visione d'insieme. O può essere contro-argomentazione contro ciascuno.

Grazie mille!

    
posta Milan 09.02.2013 - 08:33
fonte

2 risposte

2

1- Poiché gli aggiornamenti non sono frequenti, hai buone possibilità di eseguirli in un servizio in background, quindi non interromperà l'esperienza utente.

2- È una cattiva idea analizzare l'XML ogni volta poiché non cambia spesso, usando SQLite sarà molto più veloce.

    
risposta data 09.02.2013 - 08:37
fonte
0

La tua architettura va bene, hai solo bisogno di qualche ritocco per gli aggiornamenti:

  • fai in modo che l'app chiuda il file SQLite quando in realtà non legge / scrive su di esso. Questo permetterà al processo in background di aggiornarsi la maggior parte del tempo.

  • fai in modo che il tuo processo in background si aggiri, aspettando che il file sqlite sia libero

  • (in alternativa) il processo in background viene scritto in un file di aggiornamento e l'app controlla il file di aggiornamento all'avvio e periodicamente (durante l'esecuzione). Quindi importa i dati dal file degli aggiornamenti. (Nota: quando crei il file degli aggiornamenti, scrivi da qualche altra parte, "sposta" il file nel file degli aggiornamenti per impedire le razze da un file di aggiornamenti parzialmente scritto.)

Inoltre, hai bisogno di aggiornamenti quando l'app non è in esecuzione? In caso contrario, basta aggiornare l'app all'avvio (se i dati sono obsoleti) e periodicamente (nel caso in cui l'app sia in esecuzione per giorni).

Non c'è bisogno di una barra di avanzamento finché gli aggiornamenti sono veloci. Anche se gli aggiornamenti sono lenti, potresti non aver bisogno di una barra di avanzamento, specialmente se esegui aggiornamenti in background quando l'utente sta lavorando su qualcos'altro.

Idealmente, all'avvio dell'app visualizzi i dati obsoleti, ma hai un piccolo indicatore che dice "aggiornamento". Quando l'indicatore scompare, l'utente può presupporre che i dati siano aggiornati.

    
risposta data 22.09.2013 - 16:55
fonte

Leggi altre domande sui tag