Сервисы Android, потоки и пользовательский интерфейс - PullRequest
1 голос
/ 29 августа 2011

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

Ответы [ 2 ]

1 голос
/ 29 августа 2011

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

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

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

0 голосов
/ 29 августа 2011

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

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