У меня запущена служба, и одна из ее задач - регулярно получать данные с внешнего веб-хоста.После нахождения новых данных служба должна обновить основной вид деятельности, чтобы показать самый последний текст.Нет необходимости, чтобы действие находилось на переднем плане во время обновления, но когда оно возобновляется, оно должно отражать самые последние данные из службы.
Моя текущая реализация немного странная, и яне могу не думать, что должен быть лучший способ сделать это.Мой подход заключается в следующем:
Деятельность (MainActivity) реализует пользовательский интерфейс OnDataChangedListener.В onCreate функции MainActivity для регистрации она вызывает статический метод службы (MyService.addDataChangedListener (this)).
Когда служба находит измененные данные, она выполняет итерацию по своему списку слушателей и вызывает onDataChangedNewData).Наконец, метод MainActivity onDataChanged изменит текст действия, чтобы отразить новые данные.
В onPaused я планирую отменить регистрацию слушателя и перерегистрировать его в onResume.onResume также будет вызывать MyService.getDataset () для получения самых последних данных при возобновлении работы приложения.
Этот подход, похоже, не будет соответствовать жизненному циклу приложений Android.Кто-нибудь знает лучший способ справиться с этим?Спасибо!