안드로이드 개발 질문/답변
(글 수 45,052)
제목 그대로 입니다.
broadcastReceiver안에서 다시 Brasdcasting을 할 수 있을까요?
지금 제가 테스트 해본 결과로는 되지를 않습니다. 받는 대상을 지정해도
리시버안에서 브로드 캐스팅이 안돼고 있습니다.
이에 대한 자료를 찾아 보려 했으니 검색 해서 나오는 자료라고는 그냥 리시버 사용법 정도구요
어떤분이 리시버 안에서 StartActivity를 테스트 해놓으신게 있는데 이것 또한 암묵적으로 Intent에 Actoin을 실어보내면 안돼고
명시적으로 Class를 지정해줘야 Startactivity가 된다고 합니다.
broadcastReceiver안에서 다시 Brasdcasting하는 것에 관하여 자료나 알고 계신분 좀 도와주세요~
보내는건 Receiver이고 받는 주체는 Service입니다.




자문 자답입니다.
브로드캐스팅에 제한은 없습니다.
그런데, 인텐트 필터 등록이 문제였습니다.
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(Internal.aaaaaa1);
intentFilter.addAction("aaaaa2");
intentFilter.addDataScheme("file");
mContext.registerReceiver(mReceiver, intentFilter);
원래 의도는 aaaa1이란 엑션만 스키마가 적용되고 나머지는 aaaaa2에는 스키마가 적용되지 않게 하려는 의도 였는데,
위에 처럼 하면 aaaaa1 / aaaaa2 엑션에 둘다 스키마가 적용이 되어 스키마를 넣어 주지 않으면 aaaaa2라는 엑션을
받을 수가 없었습니다. 그래서 제가 엑션을 못받은 거구요.
해결법은 인텐트 필터를 따로 따로 생성하여 추가하면 됩니다.