방송 수신자
안드로이드 장치에서는 많은 이벤트들이 발생한다. 배터리가 부족할 수도 있고 네트워크가 끊어질 수도 있는 등의 이벤트들을 통지해주기 위해 방송 수신자(brodcast receiver)라는 메커니즘을 제공한다. 방송 수신자는 애플리케이션을 구성하는 4가지 컴포넌트 중 하나이다. 방송 수신자는 BroadcastReceiver 라는 클래스를 상속받아서 작성하면 된다.
이 때 onReceive()라는 메소드르르 재정의하게 되는데 방송이 수신되면 이 메소드가 호출되므로 여기에 필요한 코드를 넣으면 된다. onReceiver()의 매개변수인 context는 방송 수신자가 실행되는 컨텍스트이고 매개변수 intent를 통하여 방송에 대한 자세한 내용이 전달된다. intent의 액션에 방송의 종류가 들어 있고 intent의 필드에 추가 정보가 저장되어 있다.
방송 수신자도 액티비티처럼 애플리케이션을 구성하는 4가지 컴포넌트 중의 하나이므로 반드시 매니페스트 파일에 선언하여야 한다. 또 어떤 방송을 받을 것인지를 반드시 인텐트 필터를 통하여 지정하여야 한다.
액션 | 설명 |
---|---|
ACTION_TIME_TICK | 1분마다 보내진다. |
ACTION_TIME_CHANGED | 현재 시각 설정 |
ACTION_TIMEZONE_CHANGED | 시간대 변경 |
ACTION_BOOT_COMPLETED | 부트 완료 |
ACTION_PACKAGE_ADDED | 패키지 추가 |
ACTION_PACKAGE_CHANGED | 패키지 변경 |
ACTION_PACKAGE_REMOVED | 패키지 삭제 |
ACTION_MEDIA_MOUNTED | 외부 저장 장치 마운트 완료 |
ACTION_MEDIA_REMOVED | 외부 저장 장치 제거 |
ACTION_BATTERY_CHANGED | 배터리 상태 변경 |
ACTION_BATTERY_LOW | 배터리 저충전 |
ACTION_POWER_CONNECTED | 전원 연결 |
ACTION_POWER_DISCONNECTED | 전원 연결 해제 |
ACTION_SHUTDOWN | 파워 오프 |
방송 수신자의 동적 생성
방송 수신자는 일반적으로 매니페스트 파일에
최신 버전에서의 변경 사항
Android 8.0 (API 레벨 26)부터 대부분의 암시적 방송 수신자의 경우, 매니페스트 파일에 선언하여도 동작하지 않는다. 방송 수신자는 반드시 registerReceiver()를 사용하여 코드에서 등록하여야 한다.
'Android' 카테고리의 다른 글
[Android] XML처리와 안드로이드 멀티미디어 (0) | 2021.12.04 |
---|---|
[Android] 스레드 (0) | 2021.10.13 |
[Android] 안드로이드 서비스 (0) | 2021.10.07 |
안드로이드 스튜디오 자동완성 대소문자 구분 없애기 (0) | 2021.10.07 |
안드로이드 스튜디오 보라색 배경 해결법 (0) | 2021.10.07 |