A inserção de milhares de entradas de contato usando o applyBatch é lenta

Estou desenvolvendo um aplicativo em que preciso inserir muitas entradas de contato. Atualmente, aproximadamente 600 contatos com um total de 6000 números de telefone. O maior contato tem 1800 números de telefone.

status @ de hoje é que eu criei uma conta personalizada para armazenar os contatos, para que o usuário possa optar por ver o contato na visualização Contato

Mas a inserção dos contatos é dolorosamente lenta. Eu insiro os contatos usando ContentResolver.applyBatch. Tentei com tamanhos diferentes da lista ContentProviderOperation (100, 200, 400), mas o tempo total de execução é de aprox. o mesmo. Para inserir todos os contatos e números, leva cerca de 30 minutos!

A maioria dos problemas que encontrei em relação à inserção lenta no SQlite traz transações. Mas como eu uso o método ContentResolver.applyBatch, não controlo isso e presumo que o ContentResolver cuide do gerenciamento de transações para mi

Então, à minha pergunta: estou fazendo algo errado, ou há algo que eu possa fazer para acelerar isso?

Anders

Editar @ jcwenger: Ah, entendo. Boa explicação

Então, terei que inserir primeiro na tabela raw_contacts e depois na tabela de dados com o nome e os números. O que eu vou perder é a referência anterior ao raw_id que eu uso no applyBatch.

Então vou ter que obter todos os IDs das linhas raw_contacts recém-inseridas para usar como chaves estrangeiras na tabela de dado

questionAnswers(7)

yourAnswerToTheQuestion