1.Похоже, вам нужно транслировать некоторую информацию.Вы сможете установить широковещательные приемники в любой деятельности / услуге, о которой вы хотели бы получать уведомления.
Подробнее о Broadcastreceiver и о отправке широковещательных сообщений
2. Как передать данные между операциями / службами в рамках одного приложения?
Это зависит от типа данных, которыми вы хотите поделиться:
Примитивные данныеТипы Для совместного использования примитивных данных между операциями / службами в приложении используйте Intent.putExtras ().Для передачи примитивных данных, которые необходимо сохранить, используйте механизм хранения Предпочтения .
Непостоянные объекты Для совместного использования сложных непостоянных пользовательских объектов в течение короткого времени,Рекомендуются следующие подходы:
Класс android.app.Application
Приложение android.app.Application является базовым классом для тех, кому необходимо поддерживать состояние глобального приложения.,Доступ к нему можно получить через getApplication () из любого действия или службы.Он имеет несколько методов жизненного цикла и будет автоматически создан Android, если вы зарегистрируете его в AndroidManifest.xml.
Открытое статическое поле / метод
AnАльтернативный способ сделать данные доступными через деятельность / службы - это использование открытых статических полей и / или методов.Вы можете получить доступ к этим статическим полям из любого другого класса в вашем приложении.Для совместного использования объекта действие, которое создает ваш объект, устанавливает статическое поле для указания на этот объект, а любое другое действие, которое хочет использовать этот объект, просто получает доступ к этому статическому полю.
HashMap из WeakReferences дляОбъекты
Вы также можете использовать HashMap WeakReferences для объектов с длинными ключами.Когда действие хочет передать объект другому действию, оно просто помещает объект на карту и отправляет ключ (который является уникальным длинным, основанным на счетчике или отметке времени) получателю действия с помощью преднамеренных дополнений.Операция получателя извлекает объект с помощью этого ключа.
Класс Singleton
Существуют преимущества использования статического Singleton, например, вы можете ссылаться на них без приведения getApplication.() к классу, специфичному для приложения, или к тому, чтобы повесить интерфейс на все ваши подклассы Application, чтобы вместо этого различные модули могли ссылаться на этот интерфейс.
Но жизненный цикл статикине очень хорошо под вашим контролем;чтобы придерживаться модели жизненного цикла, класс приложения должен инициировать и разрушать эти статические объекты в методах onCreate () и onTerminate () класса приложения
Постоянные объекты Evenв то время как приложение, кажется, продолжает работать, система может решить завершить свой процесс и перезапустить его позже.Если у вас есть данные, которые необходимо сохранить от одного вызова действия к другому, вам нужно представить эти данные как состояние, которое сохраняется действием, когда ему сообщают, что оно может исчезнуть.
Для совместного использования комплексапостоянные определяемые пользователем объекты, рекомендуются следующие подходы:
Application Preferences
Files
contentProviders
SQLite DB
Если общие данные необходимо сохранить в разных точках, где процесс приложения может быть уничтожен, то поместите эти данные в постоянное хранилище, например, «Предпочтения приложения»,БД SQLite, Файлы или ContentProviders.Пожалуйста, обратитесь к Хранилище данных для получения дополнительной информации о том, как использовать эти компоненты.