본문 바로가기
Android/공부노트

[안기단] 3. Broadcast Receiver

by ESHC 2022. 5. 17.

[안드로이드 초를 단히] 3. Broadcast Receiver

안드로이드 구글 공식 문서를 공부하고 정리하는 글.

 

Broadcast Receiver

안드로이드 앱은 안드로이드 시스템 및 기타 안드로이드 앱에서 브로드캐스트 메시지를 받거나 보낼 수 있다. Publish–subscribe 패턴처럼 관심 있는 이벤트가 발생할 때 브로드캐스트가 전송되는데 시스템 부팅이나 충전 시작과 같은 이벤트가 발생하면 안드로이드 시스템은 브로드캐스트를 전송하고 일반 앱에서도 새로운 데이터가 다운받았다는 등의 맞춤 브로드캐스트를 전송할 수 있다.

브로드캐스트 리시버(Broadcast Receiver)는 이러한 브로드캐스트를 수신할 수 있는 애플리케이션 구성 요소 중 하나로 브로드캐스트가 전송되면 시스템은 특정 유형의 브로드캐스트를 수신하도록 신청한 앱에 브로드캐스트를 자동으로 라우팅합니다.(라우팅은 특정 신호가 해당 수신기로 전송되는 과정)

 

시스템 브로드캐스트

시스템이 이벤트를 발생하면 자동으로 브로드캐스트를 전송한다. 해당 이벤트를 수신하도록 신청한 앱은 이러한 시스템 브로드캐스트를 전송받을 수 있다. 브로드캐스트 메시지는 Intent객체를 통해 전송되고 추가 정보가 번들로 제공될 수도 있다. Android SDK의 BROADCAST_ACTIONS.TXT 파일을 통해 시스템 브로드캐스트 작업의 전체 목록을 확인할 수 있다.

 

브로드캐스트 수신

앱은 manifest에 선언된 수신자와 컨텍스트에 등록된 수신자를 통해 브로드캐스트를 수신할 수 있습니다.

 

manifest

manifest에 broadcast receiver를 선언하면 브로드캐스트가 전송될 때 실행 중인 앱이 아니라면 시스템에서 앱을 실행한다.

context

broadcast receiver 인스턴스를 생성하고 registerReceiver(BroadcastReceiver, IntentFilter) 를 호출하여 등록할 수 있다.

 

브로드캐스트 전송

sendOrderedBroadcast(Intent, String) 메서드는 한 번에 하나의 수신자에 브로드캐스트를 전송한다.

sendBroadcast(Intent) 메서드는 정의되지 않은 순서로 모든 수신자에 브로드캐스트를 전송한다.

LocalBroadcastManager.sendBroadcast 메서드는 발신자와 동일한 앱에 있는 수신자에 브로드캐스트를 전송한다.

 

[출처]

https://developer.android.com/guide/components/broadcasts?hl=ko 

 

브로드캐스트 개요  |  Android 개발자  |  Android Developers

브로드캐스트 개요 Android 앱은 Android 시스템 및 기타 Android 앱에서 게시-구독 디자인 패턴과 유사한 브로드캐스트 메시지를 받거나 보낼 수 있습니다. 관심 있는 이벤트가 발생할 때 이러한 브로

developer.android.com

 

댓글