Обновление активности из службы, когда активен
У меня есть приложение, в котором я хочу обновить действие (если быть точным, список действий), только когда действие из службы находится на переднем плане (Active)
Я могу использовать ListActivity Intent, но проблема в том, что это вызывает активность, даже когда она в фоновом режиме.
Я также рассмотрел использование registerDataSetObserver в ListAdapter, но это требует, чтобы курсор был обновлен. Обновление курсора из внешнего сервиса может оказаться невозможным.
У нас есть общее решение для этого?
2 ответа
Решение
У нас есть общее решение для этого?
Вероятно, дюжина из них. Вот несколько из них:
- Сделайте так, чтобы действие зарегистрировало объект слушателя с помощью сервиса в
onResume()
и удалите его вonPause()
- Отправить приватную трансляцию, подобранную по активности через
registerReceiver()
когда это на переднем плане - Иметь вид деятельности в стиле "ожидающий результат"
PendingIntent
на службу - Использовать
ResultReceiver
- Использовать
ContentProvider
с активностью, держащейся наCursor
от провайдера, а сервис обновления провайдера
Этот набор проектов демонстрирует первые три в контексте удаленных сервисов.
Лучшее решение - иметь централизованное место. Я считаю это лучшим решением. Проверь это: