In questo momento per la mia applicazione quando desidero modificare i dati per il mio ContentProvider, utilizzo solo i metodi ContentResolver di inserimento, aggiornamento ed eliminazione. Ma su un paio di progetti di esempio nell'SDK di Android, noto che usano applyBatch o BulkInsert. Quindi voglio sapere quando usare uno di questi metodi e quali sono i vantaggi di usarli su quello che sto facendo ora.Android quando utilizzare ContentResolver applyBatch o BulkInsert
risposta
I fornitori di contenuti possono disporre di osservatori, come i cursori, che vengono notificati ogni volta che si inserisce, aggiorna o elimina un inserto. Di solito questo porta a dei lavori per aggiornare l'interfaccia utente. Quando si hanno più operazioni da applicare contemporaneamente, ciò potrebbe comportare aggiornamenti ripetitivi da parte degli osservatori. In generale, se hai più inserimenti, aggiornamenti o eliminazioni da eseguire, è più efficiente eseguirli in blocco.
Detto questo, il metodo ContentProvider.applyBatch() predefinito esegue semplicemente un'iterazione sul batch e li applica comunque singolarmente. Lo scrittore di ContentProvider deve ignorare questo e applicarlo in modo più efficiente per sfruttare le operazioni batch.
Solo per aggiungere ulteriori dettagli su ciò che jsmith ha detto, è che BulkInsert non sarà transazionale mentre applyBatch sì, quindi se si vuole assicurarsi che un gruppo di operazioni siano applicate in un modo di transazione, utilizzare applyBatch.
- 1. Come utilizzare la funzione bulkInsert() in Android?
- 2. Android: le transazioni SQLite quando si usa ContentResolver
- 3. ContentResolver usage
- 4. ContentResolver restituisce sempre null
- 5. Android - SQLite ContentResolver inserisce/elimina/aggiorna sul thread UI?
- 6. Quando utilizzare un AppCompatView o una normale vista Android
- 7. Frammenti Android: Quando utilizzare nascondere/mostrare o aggiungere/rimuovere/sostituire?
- 8. Quando utilizzare (o non utilizzare) un delegato
- 9. Quando utilizzare NaN o +/- Infinity?
- 10. Quando utilizzare InvalidOperationException o NotSupportedException?
- 11. android: quando utilizzare onStart(), onStop()?
- 12. Layout Android - quando utilizzare l'app: vs Android :?
- 13. Come creare una nuova playlist utilizzando ContentResolver
- 14. Quando utilizzare ArrayMap di Android anziché HashMap?
- 15. Quando utilizzare CultureInfo.GetCultureInfo (String) o CultureInfo.CreateSpecificCulture (String)
- 16. Quando utilizzare Mapper o Record in Lift?
- 17. Quando utilizzare #define o char costante/int?
- 18. quando utilizzare UL o OL in html?
- 19. Quando utilizzare lato client o lato server?
- 20. Quando utilizzare os.name, sys.platform o platform.system?
- 21. Quando utilizzare TextFrame o TextFrame2 in VBA
- 22. Quando utilizzare gli attori locali o remoti?
- 23. Quando utilizzare una query o un codice
- 24. zmq: quando utilizzare zmq_bind o zmq_connect
- 25. Quando utilizzare HTML5 in Android? quando non usi?
- 26. Come si consiglia di utilizzare il metodo di eliminazione di contentResolver come sicuro per l'iniezione?
- 27. Android: quando utilizzare Service vs Singleton?
- 28. Android: quando è opportuno utilizzare FragmentTransaction.remove?
- 29. Quando utilizzare Android PopupWindow vs Dialog
- 30. Quando utilizzare le interfacce o classi astratte? Quando usare entrambi?
Se si sta creando la propria classe 'ContentProvider', è possibile sovrascrivere' bulkInsert' in modo da utilizzare le transazioni. –