Я пишу свое первое приложение для Android и пытаюсь наладить связь между услугами и действиями. У меня есть служба, которая будет работать в фоновом режиме и делать некоторые записи GPS и времени. У меня будет Активность, которая будет использоваться для запуска и остановки Сервиса.
Итак, во-первых, я должен быть в состоянии выяснить, работает ли Служба при запуске Действия. Здесь есть и другие вопросы, так что я думаю, что смогу это выяснить (но не стесняйтесь предлагать советы).
Моя настоящая проблема: если активность запущена, а служба запущена, мне нужен способ для отправки сообщений в активность. Простые строки и целые числа на данный момент - сообщения о статусе в основном. Сообщения не будут появляться регулярно, поэтому я не думаю, что опрос службы - это хороший способ, если есть другой путь. Я хочу получить это сообщение только тогда, когда действие было запущено пользователем - я не хочу запускать действие из службы. Другими словами, если вы запустите Activity, а служба будет запущена, вы увидите некоторые сообщения о состоянии в пользовательском интерфейсе Activity, когда произойдет что-то интересное. Если вы не запустите действие, вы не увидите эти сообщения (они не так интересны).
Похоже, я должен быть в состоянии определить, запущена ли служба, и если да, добавить активность в качестве прослушивателя. Затем удалите Activity как слушателя, когда Activity приостановится или остановится. Это действительно возможно? Единственный способ понять, как это сделать, - это заставить Activity реализовать Parcelable и создать файл AIDL, чтобы я мог передать его через удаленный интерфейс Сервиса. Хотя это кажется излишним, и я понятия не имею, как Activity должна реализовывать writeToParcel () / readFromParcel ().
Есть ли более простой или лучший способ? Спасибо за любую помощь.
РЕДАКТИРОВАТЬ:
Для тех, кто заинтересован в этом позже, есть пример кода от Google для обработки этого через AIDL в каталоге примеров: /apis/app/RemoteService.java
busy-wait
активность? Объясните пожалуйста ?