Обновление активности из службы, когда активен

У меня есть приложение, в котором я хочу обновить действие (если быть точным, список действий), только когда действие из службы находится на переднем плане (Active)

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

Я также рассмотрел использование registerDataSetObserver в ListAdapter, но это требует, чтобы курсор был обновлен. Обновление курсора из внешнего сервиса может оказаться невозможным.

У нас есть общее решение для этого?

2 ответа

Решение

У нас есть общее решение для этого?

Вероятно, дюжина из них. Вот несколько из них:

  • Сделайте так, чтобы действие зарегистрировало объект слушателя с помощью сервиса в onResume() и удалите его в onPause()
  • Отправить приватную трансляцию, подобранную по активности через registerReceiver() когда это на переднем плане
  • Иметь вид деятельности в стиле "ожидающий результат" PendingIntent на службу
  • Использовать ResultReceiver
  • Использовать ContentProviderс активностью, держащейся на Cursor от провайдера, а сервис обновления провайдера

Этот набор проектов демонстрирует первые три в контексте удаленных сервисов.

Лучшее решение - иметь централизованное место. Я считаю это лучшим решением. Проверь это:

кликните сюда

Другие вопросы по тегам