2011-06-12 2 views
0

패키지가 설치, 제거 또는 업데이트 된 경우 알림을받는 데 관심이있는 서비스가 있습니다.BroadcastReciever에서 android의 서비스로 다시 신고하는 방법은 무엇입니까?

나는 내가 방송 수신기를 사용해야 함을 이해하지만, 그것은 분명히

당신이 브로드 캐스트 리시버

내에서 서비스에 대한 대화 또는 바인드가 표시되지 않을 수 있습니다 그 ... BroadcastReceiver 말한다

제 질문은 - 방송에 그러한 방송이 있음을 어떻게 알릴 수 있습니까?

답변

1

귀하는 결합 할 수 있지만, 아무것도는 의도를 통해 서비스를 호출하는 것을 금지하지 :

context.startService(<your intent with a name that match the filter of your service>); 

그런 다음 평소와 같이,이 의도 엑스트라 내에서 데이터를 넣어.

또 다른 옵션은 AIDL 일 수 있지만 아직 탐색하지 않았습니다.

1

당신이 인용 한 텍스트를 확장하려면 ... 특히

, 당신은 대화 상자를 표시하거나 브로드 캐스트 리시버 내에서 서비스에 바인딩 할 수 있습니다. 이전의 경우 NotificationManager API를 대신 사용해야합니다. 후자의 경우 Context.startService()를 사용하여 서비스에 명령을 보낼 수 있습니다. 이 인스턴스화 시작됩니다 Context.startService() 문서에서

...

이 서비스가 이미 실행되고 있지 않은 경우, (필요한 경우에 대한 프로세스를 생성); 실행 중이면을 계속 실행합니다.

즉, 이미 실행중인 서비스에서 startService()을 호출하는 win/win 상황은 악영향을 미치지 않습니다.

관련 문제