새로운 Android 빌드 시스템을 사용하여 LocalBroadcastManager
을 사용하여 IntentService
에서 Activity
으로 알림을 실행하는 중입니다.LocalBroadcastManager는 앱 패키지 이름에 의존합니까?
다음과 같은 제품 맛을 3 가지 앱의 빌드의 일부로 정의했습니다.
productFlavours {
london {
packageName 'com.example.lo'
}
dubai {
packageName 'com.example.du'
}
}
이러한 제품 맛을 사용하여 앱을 제작할 때 관리자를 통해 브로드 캐스트가 전송되지 않습니다. 서비스와 활동이 동일한 프로세스에서 실행되고 있음을 확인했습니다.
브로드 캐스트 수신기는 내 활동의 Activity#onCreate
메서드에서 필요에 따라 바인딩되지만 이벤트는 수신하지 않습니다. 또한 활동과 서비스의 프로세스 ID를 인쇄하여 확인했으며 두 프로세스 모두 동일하다고보고하므로 문제가 될 수 없습니다.
테스트로서 제품 맛을 제거하고 앱 매니페스트 파일에 정의 된대로 단일 패키지 이름으로 앱을 제작했습니다. 이제 브로드 캐스트 관리자가 예상대로 작동하는 것 같습니다. 보내려는 의도에 대해서만 나는 행동을 취하고 있습니다.
다른 설정이 필요합니까?
올바른 의도로 수신기를 등록 하시겠습니까? 필터? 아마도 어떤 코드가 나타날 곳을 표시 할 것입니다. – waqaslam
예를 선택하고 인 텐트 필터를 두 번 확인했습니다. 나는 그것을 onCreate 메서드에 등록하고 onDestroy에서 등록을 취소합니다. –
방송을 시작하고 방송하는 데 동일한 컨텍스트를 사용하고 있습니까? LocalBroadcasts가 컨텍스트에 바인딩되어 있기 때문입니다. – waqaslam