Как создать и заполнить большую базу данных, не блокируя активность вызова - PullRequest
0 голосов
/ 06 декабря 2011

Я загружаю zip-файл из Интернета, сохраняю его на SD-карту и распаковываю файл.Мое приложение читает файл построчно, где каждая строка содержит 96 элементов столбца.Я добавляю все элементы в Contentvalues, который вставляет значения в базу данных.

Я сделал все это в службах и запускаю эту службу в методе onCreate моего заставки.Но эта служба не позволяет запускать заставку, она занимает слишком много времени для заполнения базы данных.

Есть ли способ сделать это в фоновом режиме, не влияя на реакцию пользовательского интерфейса?

Ответы [ 2 ]

5 голосов
/ 06 декабря 2011

Конечно!Вы можете использовать AsynkTask, здесь вы можете найти некоторую документацию.Удачи!

0 голосов
/ 06 декабря 2011

Да, вы можете запустить сервис в отдельном потоке, или весь процесс, который вы выполняете в сервисе, может быть перенесен в поток в сервисе, это также поможет вам избежать проблем ANR. очевидно, вы также можете использовать AsynkTask, как указано выше в примере

Thread thread = new Thread(){
public void run(){

/*Start service here or write the whole code that you are using in service 
and use this thread in service
*/

}};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...