У меня есть объект данных, который иногда обновляется из источника данных в Интернете с использованием повторяющегося сигнала тревоги.Ведение списка PendingIntents, сохранение прежнего жизненного цикла объекта-объекта
Этот объект данных отслеживает объекты, которые хотят получать уведомления при получении новых данных. В настоящее время я использую два способа регистрации слушателей: они могут регистрироваться как обратный вызов, если они ожидают обновления только в том случае, если приложение находится на переднем плане, или они могут зарегистрироваться с помощью PendingIntent
, если объект наблюдения должен быть уведомлен, даже если приложение не активен.
Моя проблема заключается в том, что если мой объект данных удаляется из памяти, его список PendingIntents также удаляется. Я предполагаю, что могу придумать сложный метод сохранения списка и всех полей в нем в общих предпочтениях или что-то в этом роде, но я думаю, что просто должен быть лучший способ.
Есть ли способ, которым я могу попросить систему, которая, как я знаю, содержит собственный список PendingIntents для всех моих «ожидающих» событий?
Обратите внимание, что я не могу воссоздать PendingIntents при создании объекта или в любое другое время - они созданы слушателями, и невозможно определить, какие поля они установили или их значения.
«Полагаю, я мог бы придумать сложный метод сохранения списка и всех полей в нем в общих предпочтениях или что-то еще» - нет.«создаются слушателями, и невозможно определить, какие поля они установили или их значения» - если эти слушатели находятся в вашем приложении, почему вы используете «PendingIntents» в первую очередь? Если этих слушателей нет в вашем приложении, то они не являются вашими «PendingIntents» (по отношению ко всем «моим» PendingIntents »). – CommonsWare
@CommonsWare: Я намерен использовать PendingIntent для уведомления моих других компонентов приложения для обновления своих дисплеев или того, что они хотят делать, когда мой объект данных обновляется. Если пользователь не взаимодействует с приложением в то время, каким другим способом я могу уведомить мои компоненты приложения о наличии новых данных? В этом конкретном случае я обновляю такие вещи, как appWidgets, которые отображают данные и проверяют, должны ли выдаваться уведомления. – rothloup
«Какой еще метод я могу уведомить мои компоненты приложения о наличии новых данных?» - um, методы вызова на объектах Java? Если ваши проблемы связаны с жесткой связью, используйте шину событий. «Я обновляю такие вещи, как appWidgets, которые отображают данные и проверяют, должны ли выдаваться уведомления» - используйте «AppWidgetManager» для обновления виджета приложения. Для обновления виджета приложения не требуется «PendingIntent». – CommonsWare