[안드로이드 기초를 단단히] 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 > 공부노트' 카테고리의 다른 글
[안드로이드] 서비스 - 최근 앱 목록에서 앱을 닫는다면? (0) | 2022.05.19 |
---|---|
[안드로이드] 서비스 예제1 - start service (0) | 2022.05.18 |
[안기단] 2. Service (0) | 2022.04.12 |
안드로이드 Jetpack Compose - 4 (0) | 2022.04.12 |
[안기단] 1. Activity (0) | 2022.04.05 |
댓글