Можно ли использовать Thread вместо Service в виджете главного экрана Android? - PullRequest
1 голос
/ 04 марта 2010

Я пишу виджет домашнего экрана в соответствии с руководством Джеффа Шеки, http://android -developers.blogspot.com / 2009/04 / inturing-home-screen-widgets-and.html .

Это руководство использует сервис, чтобы избежать тайм-аутов ANR.Мне просто интересно, могу ли я использовать Thread вместо службы для получения данных и обновления RemoteViews?Я не хочу создавать сервис, потому что Thread легче обрабатывать и передавать данные в Thread.

Спасибо.

Ответы [ 2 ]

4 голосов
/ 04 марта 2010

Вы не должны полагаться на нить. Это не гарантировано, чтобы работать. Из опыта в аналогичной ситуации подход потока работал на эмуляторе и галактике Samsung, но не надежен на g1. Таким образом, вы должны действительно попытаться использовать сервис. Это довольно просто: определите в своем манифесте и startService. Передавать данные через намерение немного сложнее, но это управляемо, и весь подход определенно более надежен.

3 голосов
/ 05 марта 2010

Я прочитал статью о том, что, чтобы избежать ANR, обслуживания иногда недостаточно. Тема нужна.

См .: http://blog.elsdoerfer.name/2009/06/03/writing-an-android-widget-what-the-docs-dont-tell-you/

"вам предлагается использовать службу для выполнения обновлений виджетов, если вы делаете что-то, что может занять немного больше времени, чтобы избежать тайм-аутов приложения, не отвечающего на запросы (ANR). Однако этого обычно недостаточно. .....

Решение состоит в том, чтобы ваш сервис запускал отдельный поток. Для примера, см. Виджет Джеффри Шарки "android-sky". "

Есть мысли?

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