18 Out, 2013 21:23
Melhorando o desempenho do banco de dados do seu aplicativo Android
Para quem utiliza SQLiteDatabase para fazer ações de incluir, alterar e excluir registros no banco de dados, sabe que algumas operações demandam tempo e um custo de processamento alto, que na maioria das vezes são cruciais para o bom desempenho do aplicativo. Para melhorar esse desempenho, podemos utilizar transaction, que é bem simples e fácil de usar.
Para mostrar como fazer, segue o código do método de inserir uma lista de cinemas, por exemplo, sem transaction:
public void incluir(List<Cinema> cinemas) {
for (Cinema cinema : cinemas) {
ContentValues values = preencherContentValues(cinema);
db.insert(CinemaEntry.TABLE_NAME, "", values);
}
}
Fazendo um teste com o método acima, a inclusão de 45 cinemas demorou 1510 milissegundos, ou seja, mais de 1 segundo.
Agora, utilizando transaction, o método fica assim:
db.beginTransaction();
try {
for (Cinema cinema : cinemas) {
ContentValues values = preencherContentValues(cinema);
db.insert(CinemaEntry.TABLE_NAME, "", values);
}
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
Realizando novamente o mesmo teste, a inclusão demorou 185 milissegundos!!! Sem a transaction, o tempo é quase 9 vezes maior. É uma economia de tempo muito grande para o seu aplicativo.
Para saber um pouco mais sobre transaction e demais métodos de SQLiteDatabase, acesse aqui.
Até a próxima!