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