У меня есть ListActivity, который запускает службу. В этой службе я запустил поток, который выполняет некоторые запросы к базе данных до 800 контактов, это, кажется, замедляет или даже иногда зависает пользовательский интерфейс. Должен ли я использовать вместо этого AsyncTask? Как правильно с этим справиться?

1
Maurice 29 Авг 2011 в 08:21

2 ответа

Лучший ответ

Обычно службы работают в UI-Thread. Но вы упомянули, что используете поток в сервисах, это означает, что ваша работа выполняется в фоновом режиме, поэтому нет никакой возможности заблокировать UI-Thread.

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

Вы можете использовать AsyncTask вместо запуска службы и обновления с помощью потока, потому что asynctask выполняет то же самое, что и фоновый поток.

1
Dharmendra 29 Авг 2011 в 04:46

Попробуйте инкрементную загрузку контактов для вашего списка. Запрос такого большого количества данных, конечно, замедлит ваш поток.

0
Kumar Bibek 29 Авг 2011 в 04:46