У меня в данный момент есть Служба и Активность в моем приложении.
В настоящее время я привязываю Службу к действию, не используя AIDL, так как Служба и Задание находятся в одном приложении.
Это позволяет мне вызывать методы из Сервиса в рамках моей Деятельности, когда мне это требуется, однако не позволяет мне вызывать методы Деятельности из моего Сервиса, когда я этого хочу.
Кто-нибудь может прокомментировать, как лучше всего это сделать?
Я мог бы использовать Intents, но есть ли альтернатива?
Я хочу иметь тесную связь между Сервисом и Активностью, хочу иметь возможность вызывать метод Активности из моей Сервиса, когда происходит событие.
Спасибо Огниану за отличный совет.
РЕДАКТИРОВАТЬ 2:
Теперь у меня все работает так, как я хочу, однако я столкнулся с проблемой.
Моя служба получает обновления статуса, и моя активность должна реагировать на обновления, отправленные службой.
Проблема в том, что, когда я начинаю свою деятельность, я получаю статус набора номера, а затем статус подключения, прежде чем вызывается onBind, и я получаю экземпляр iCallDialogActivity.
Следующий вывод из logcat может прояснить ситуацию.
06-28 10:56:48.702: DEBUG/TestPhone(3498): Status: EStatusDialling
06-28 10:56:48.751: DEBUG/TestPhone(3498): Status: EStatusConnected
06-28 10:56:49.122: DEBUG/TestPhone(3498): Status: onBind Called <-------------
06-28 10:56:49.141: DEBUG/TestPhone(3498): Status: iCallDialogActivity instance <-------------
06-28 10:56:51.641: DEBUG/TestPhone(3498): Status: EStatusDisconnecting
06-28 10:56:51.651: DEBUG/TestPhone(3498): Status: EStatusIdle
Мне нужно иметь возможность использовать iCallDialogActivity при получении уведомлений о наборе номера и состоянии соединения.
Но это дает мне исключение NullPointer из-за того, что оно не было создано во время начала моей активности, привязка - это первое, что я делаю в своей деятельности onCreate ().
Есть ли способ заставить его связываться сразу?