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