SQLite вставляет тайм-аут в Android? - PullRequest
0 голосов
/ 11 мая 2011

Во время onCreate () я пытаюсь вставить около 20 строк в базу данных SQLite (это всего лишь тестовые значения. Для окончательной версии мне нужно будет вставить около 1000).

Использование отладчикапохоже, что при запуске onCreate () это вызывает «Тайм-аут паузы активности для HistoryRecord», и кажется, что из журнала вставляются не все строки.

Использование асинхронной задачи - единственный способ сделать эту работу безвремя ожидания?

Спасибо

Ответы [ 3 ]

1 голос
/ 11 мая 2011

Да, асинхронная задача или в отдельном потоке - правильный путь, кроме того, вы можете указать БД, что запускаете транзакцию, которая значительно ускоряет процесс для больших вставок,

dh.getDb () BeginTransaction ();.

// вставить statemetns

dh.getDb () setTransactionSuccessful ();.
. Dh.getDb () endTransaction ();

0 голосов
/ 11 мая 2011

Использование асинхронной задачи - не единственный способ, но это лучший способ.AsyncTask также довольно прост.Вы ОПРЕДЕЛЕННО не хотите делать это в главном потоке.

0 голосов
/ 11 мая 2011

Если выдается это предупреждение с 20 записями, представьте задержку с тысячей.Вы действительно хотите так долго блокировать выполнение?

Обновление базы данных как асинхронной задачи или в отдельном потоке - правильный путь.

...