2012-10-23 10 views
6

È necessario o addirittura consigliabile accedere sempre a SQLiteDatabase da un AsyncTask?È necessario accedere a un SQLiteDatabase in un AsyncTask?

Facendolo dal thread UI sembra non causare problemi ed è molto più semplice da implementare.

+1

Gli utenti tenderanno a considerare un'interfaccia utente bloccata come un problema. – CommonsWare

+0

Giusto, ma finora non sembrava congelare l'interfaccia utente. –

risposta

4

Si raccomanda di non eseguire IO dal tuo thread dell'applicazione principale, ma, lo fa non devono essere fatto utilizzando un AsyncTask.

Sono disponibili altre opzioni per uscire dal thread principale, alcune delle quali includono Loader Framework, IntentService e Executors.

4

È una buona pratica. Le operazioni del database non sono sempre veloci, quindi Android consiglia di eseguire tutte le operazioni di database e di rete su un thread in background (AsyncTask, Runnable, ecc.).

3

No, non è necessario accedere SEMPRE al database in un'altra discussione. Dipende da quanto tempo ci vuole. Di solito le letture/le scritture sono veloci, non rallentano l'interfaccia utente e non richiedono un altro thread. Tuttavia, quando esegui operazioni lunghe come le pulizie ecc. Allora sì, è una buona idea farle in un altro thread.