Android - активность из службы? - PullRequest
0 голосов
/ 28 ноября 2009

Я расширяю класс IntentService для запуска фоновой службы на Android. Служба запускается сразу после загрузки. Я хочу периодически выскакивать пользовательское поле ввода из этого сервиса. Итак, я попытался вызвать Activity из службы, но это не помогает. Появляется страшная коробка Force Close, и сервис умирает. Кто-нибудь может предложить какие-то методы для вызова активности из фоновой службы?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 28 ноября 2009

Я хочу открыть окно ввода пользователя из эта услуга периодически.

Пожалуйста, пересмотрите этот план. Используйте Notification. Ваши пользователи будут вам благодарны.

РЕДАКТИРОВАТЬ : Чтобы уточнить, я предполагаю, что вы хотите асинхронно «всплывающее окно ввода пользователя» без каких-либо ваших действий на переднем плане. Если это так, то это не очень хороший шаблон пользовательского интерфейса - пользователи могут легко раздражаться, когда ваша активность всплывает, например, когда они набирают текстовое сообщение.

Итак, я попытался вызвать активность из сервис, но это не помогает. появляется страшная коробка Force Close и служба умирает.

Убедитесь, что вы звоните startActivity() из потока пользовательского интерфейса. Если это не помогает, как рекомендовал aforlorney, проверьте LogCat через adb logcat, DDMS или перспективу DDMS в Eclipse, чтобы получить трассировку стека Java для вашего исключения.

1 голос
/ 29 ноября 2009

Это не имеет прямого отношения к ответу (commonsware.com уже дал хороший обзор того, как попытаться решить эту проблему), но просто совет: если у вас есть фоновая служба, которая периодически выполняет код, вы служба должна использовать AlarmManager, чтобы проснуться, а не оставаться на неопределенное время. По сути, запустите службу, сделайте так, чтобы она создала PendingIntent для вызова себя, а затем просыпайтесь, когда это необходимо.

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