[안드로이드] Ch14. 브로드캐스트 리시버 컴포넌트
※ 본 포스팅은 “깡샘의 안드로이드 앱 프로그래밍 with 코틀린” 을 참고하여 작성하였습니다.
14-1. 브로드캐스트 리시버 이해하기
- 브로드캐스트 리시버
- 이벤트 모델로 실행되는 컴포넌트
- 이벤트: 시스템의 특정한 상황(ex: 부팅이 완료되는 것)
- 브로드캐스트 리시버 만들기
- 브로드캐스트 리시버의 생명주기 함수: onReceive()
- onReceive() 함수가 실행을 마치면 브로드캐스트 리시버 객체는 소멸
- 매니페스트 파일 -
- name 속성(필수 X)
- 브로드캐스트 리시버의 생명주기 함수: onReceive()
- 동적 등록과 해제
- 브로드캐스트 리시버를 매니페스트 파일로 등록하는 대신
- 리시버 객체 생성
- 동적 등록: registerReceiver(), unregisterReceiver()
- 브로드캐스트 리시버를 매니페스트 파일로 등록하는 대신
- 브로드캐스트 리시버 실행하기
- 브로드캐스트 리시버를 실행하는 인텐트: sendBroadcast() 함수로 시스템에 전달
- 액티비티 수
- 없음: 오류 발생 X
- 1개: 정상 실행
- 여러 개: 모두 실행
14-2. 시스템 상태 파악하기
부팅 완료
- 앱에서 부팅이 완료되고 특정한 작업을 수행하고 싶을 때
- 브로드캐스트 리시버와 인텐트 필터 등록
- 권한 설정:
화면 켬/끔
- 안드로이드 기기의 화면을 켜거나 끌 때 이를 감지하는 리시버
- ACTION_SCREEN_ON, ACTION_SCREEN_OFF
- 리시버(동적) 등록: registerReceiver(), unregisterReceiver()
배터리 상태
- 배터리와 관련된 정보나 상태 변화를 앱에서 감지
- BATTERY_LOW, BATTERY_OKAY, BATTERY_CHANGED, ACTION_POWER_CONNECTED, ACTION_POWER_DISCONNECTED
- 리시버 등록
- 상태 변경 없이 배터리 정보를 알고싶을 때
- intentFilter 객체를 registerReceiver() 의 매개변수로 전달
- 인텐트의 엑스트라로 배터리 상태 파악하기: 충전 형태, 배터리 충전량, …
14-3. 배터리 정보 앱 만들기 Do it! (실습)
정리
- 브로드캐스트 리시버는 이벤트 모델로 실행되는 컴포넌트
- 브로드캐스트 리시버는 BroadcastReceiver를 상속받아 onReceive()의 생명주기 함수를 재정의해서 작성
- 브로드캐스트 리시버를 실행하려면 sendBroadcast() 함수를 이용해 인텐트를 시스템에 전달해야 함
- 브로드캐스트 리시버를 이용하면 부팅을 완료한 순간, 화면을 켜거나 끄는 순간, 배터리 상태가 변경되는 순간 등 시스템의 상태 변화를 감지할 수 있음
This post is licensed under CC BY 4.0 by the author.