Java Android: OutOfMemory ao inserir uma lista enorme no banco de dados SQL

Estou apenas trabalhando em um projeto Android onde um greendao ORM é usado. Isso me permite inserir várias entidades (obviamente objetos) no banco de dados de uma só vez (em uma transação). Na prática, existe um método

insertOrReplaceInTx (...)

que toma como parâmetro uma coleção, dada uma lista de objetos. O problema é que minha lista tem uma espécie de 12000 objetos e uma inserção leva de tempos em tempos a uma exceção OutOfMemory. Estou pensando em uma maneira inteligente de resolver o problema e impedir futuras OOM. A única idéia que me vem à mente é dividir a enorme coleção em uma espécie de sub-coleção (digamos 500 elementos cada) e confirmar em um loop, fazendo várias pequenas confirmações em vez de uma grande. O lado ruim é que leva mais tempo para inserir os registros e o tempo é importante aqui. No final, não tenho certeza se fazer commit após commit não mata a pilha de qualquer maneira. Talvez chame um método sleep () para deixar o GC limpar a pilha ... mas me parece uma espécie de solução feia.

alguma idéia inteligente do seu lado? desde já, obrigado

questionAnswers(1)

yourAnswerToTheQuestion