2012-01-17 3 views
1

두 개의 서비스 A와 B가 있습니다. 서비스 A의 일부 서비스 B 메소드에 액세스하려면 ServiceConnection 클래스와 서비스 A를 작성해야합니다. 스텁을 작성하고 구현해야합니다 방법.바인드 된 서비스 모두에서 원격 서비스 메소드에 액세스

그러나 나는 또한 내가 한 번 더 AIDL 연결을 생성하고 잘 작동 ServiceConnection을 구현 재판에 대한 서비스 B.에서 서비스 A의 방법에 액세스하려면이 유일한 방법이있다 또는 우리는 serviceconnection 기존 사용하고 구현할 수 있습니다 다른 방법 으로이 기능을?

+0

크로스 프로세스 "대화"를 지원해야합니까? 동일한 과정을 진행중이라면 절대로 AIDL에 신경 쓸 필요가 없다면 AIDL에 신경 쓸 필요가 없습니다. – Jens

+0

예 두 서비스 모두 diff 프로세스입니다. –

+0

@BrijeshMasrani -이 솔루션이 도움이 되었습니까? AIDL은 비쌉니다. "안드로이드"개발에 실제로 사용되지는 않지만, 소켓은 양방향 통신 회선을 만드는 쉬운 방법 일 것입니다. – jjNford

답변

0

서비스에는 확실히 콜백 인터페이스가있을 수 있습니다 (즉, 서비스는 클라이언트에서 메소드를 호출 할 수 있습니다).

the RemoteService example in the SDK을 참조하십시오.

1

저는 이것이 AIDL이 제 경험에서 얻은 유일한 방법이라고 생각합니다. 서비스 A에서 서비스 B로 전달 될 수있는 사용자 정의 콜백을 만들 수 있습니다. 그런 다음 B가 A로 다시 보내려는 경우 콜백을 트리거 할 수 있습니다. 인 텐트를 앞뒤로 전달하거나 소켓을 통해 통신하는 옵션도 있습니다. 다른 쪽에서 차단하고 있는지 확인하십시오.