본문 바로가기

안드로이드스튜디오

안드로이드 스튜디오 브로드캐스트 수신자

728x90
반응형

* 안드로이드에서 브로드캐스팅이란 메시지를 여러 객체에 전달하는 것을 말한다.

여러 앱 구성 요소에 메세지를 전달할 때 브로드캐스팅을 사용한다.

 

* 예를 들어, 다른 사람으로부터 문자를 받았을 때 이 문자를 SMS 수신 앱에 알려줘야 한다면 브로드캐스팅으로 전달하면 된다.

이런 메세지 전달 방식은 단말 전체에 적용될 수 있으므로 '글로벌 이벤트(Global Event)'라고 부른다.

글로벌 이벤트의 대표적인 예로는 '전화가 왔습니다.', '문자 메시지가 도착했습니다.'와 같은 사용자 알림 같은 것들이다.

 

* 앱에서 브로드캐스팅 메시지를 받고 싶다면 브로드캐스트 수신자(Broadcast Receiver)를 만들어 앱에 등록하면 된다.

즉, 기기 안에서 동작하는 다른 앱 A로부터 특정 메시지를 받기 위해 만든 앱에 브로드캐스트 수신자를 등록하면 A 앱의 메시지가 만든 앱으로 전달된다. 

이때 서비스와 마찬가지로 브로드캐스트 수신자도 앱 구성 요소이다. 따라서 새로운 브로드캐스트 수신자를 만들면 새로 등록해야 시스템이 알 수 있다.

단, 브로트캐스트 수신자는 매니페스트 등록 방식이 아닌 소스코드에서 registerReceiver 메서드를 사용해 시스템에 등록할 수 있다.

소스 코드를 이용하여 브로드캐스트 수신자를 등록하면 액티비티 안에서 브로드캐스트 메시지를 전달받아 바로 다른 작업을 수행할 수 있다.

 

* 브로드캐스트 수신자에는 onReceive 메서드를 정의해야 한다. 이 메서드는 원하는 브로드캐스트 메시지가 도착하면 자동으로 호출된다. 하지만 시스템의 모든 메시지를 받을 수는 없으므로 모든 메시지를 인텐트 안에 넣어 전달되는 원하는 메세지는 인텐트 필터를 사용해 시스템에 등록하면 된다.

반응형