из службы использовать: runOnUiThread или AsyncTask или Handler или Post - PullRequest
4 голосов
/ 13 июня 2011

Я пишу приложение VoIP.Он основан на сервисе, который управляет VoIP-логикой и пользовательским интерфейсом для выполнения вызовов, ответа и т. Д.
Каков наилучший способ обновления пользовательского интерфейса из сервиса:

  • runOnUiThread или
  • AsyncTask или
  • Обработчик или
  • Post

Когда использовать один метод поверх другого?

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

Спасибо.

Ответы [ 2 ]

2 голосов
/ 13 июня 2011

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

0 голосов
/ 07 мая 2012

Вы должны вызвать bindService () для привязки к Сервису.Затем вы можете использовать AsyncTask или Обработчик для получения Информации из Сервиса.

Для получения дополнительной информации: Разработчики Android

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