2012-03-01 2 views
3

기기에 2 개의 앱이 모두 설치되어 있습니다. 앱 중 하나가 ACTION_BOOT_COMPLETED 방송을 수신하고 초기화를 수행하고 다른 방송을 보냅니다 (MY_CUSTOM_BROADCAST). 두 번째 앱에는이 맞춤식 방송을 수신하는 브로드 캐스트 수신기 (매니페스트에 태그로 언급 됨)가 있습니다. 부팅시 첫 번째 앱은 ACTION_BOOT_COMPLETED를 수신하고 사용자 정의 브로드 캐스트를 성공적으로 보냅니다. 하지만 내 두 번째 앱의 수신자는 수신하지 않는 것 같습니다. "am broadcast"를 사용하여 사용자 지정 방송을 보냈습니다. 그럼에도 두 번째 앱의 수신자는 수신하지 않습니다.앱이 시작되지 않으면 브로드 캐스트 수신기가 브로드 캐스트를받지 않음

그런 다음 두 번째 앱의 주요 활동을 시작한 다음 '방송 중'을 사용하여 방송을 전송하려고했습니다. 그런 다음 두 번째 앱의 수신자가 성공적으로 수신했습니다.

내 수신자가 부팅시 사용자 지정 방송을받지 못하는 이유에 대해 도와 줄 수 있습니까? 4.0.3 (ICS)에서 실행 중입니다.

+2

BroadcastReceiver를 코드 또는 매니페스트에 등록 하시겠습니까? – waqaslam

+0

방송 수신 여부는 어떻게 테스트하고 있습니까? – Khasm

+0

매니페스트에 등록 중입니다. 로깅으로 영수증을 테스트 중이며 브로드 캐스트가 수신되면 활동을 시작합니다. – Krishna

답변

5

안드로이드 3.1 이상 버전에서 앱이 실행 된 적이 없거나 강제 중지 된 경우 앱이 중지 된 것 같습니다. 시스템에서 이러한 앱을 브로드 캐스트 인 텐트에서 제외합니다. 그들은 Intent.FLAG_INCLUDE_STOPPED_PACKAGES 플래그를 사용하여 포함시킬 수 있습니다.

http://developer.android.com/sdk/android-3.1.html#launchcontrols

http://commonsware.com/blog/2011/07/13/boot-completed-regression-confirmed.html

또한, 나는 당신이 Intent.FLAG_ACTIVITY_NEW_TASK 플래그를 필요가 있다고 생각합니다.

+0

안녕하세요. 시원한. 감사합니다 Khasm – Krishna

+0

안녕하세요, @Khasm, GCM 알림 용 브로드 캐스트 리시버를 등록하고 있습니다. 앱을 강제 종료하면 브로드 캐스트를받지 못합니다. 그러면 어떻게해야합니까? – CommandSpace

관련 문제