스터디
[Manifest-Android] 10. 브로드캐스트 리시버
참깨빵위에참깨빵_
2025. 6. 21. 16:38
728x90
반응형
앱이 시스템 전체 브로드캐스트 메시지 or 앱 별 브로드캐스트를 받고 이것에 응답할 수 있게 하는 컴포넌트.
시스템이나 다른 앱에서 트리거되어 배터리 상태 변경, 네트워크 연결 업데이트 등 여러 이벤트를 알린다.
브로드캐스트 종류
시스템 브로드캐스트 : 배터리 잔량 변경, 타임존 업데이트 등 시스템 이벤트를 앱에 알리기 위해 안드로이드 OS가 전송
커스텀 브로드캐스트 : 앱 내에서 또는 앱 간에 특정 정보, 이벤트를 전달하기 위해 앱에서 전송
브로드캐스트 리시버 선언
브로드캐스트 리시버를 만들려면 BroadcastReceiver 클래스를 상속하고, 브로드캐스트 처리 로직을 정의하는 onReceive()를 재정의해야 한다.
class MyBroadcastReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
val action = intent.action
if (action == Intent.ACTION_BATTERY_LOW) {
// Handle battery low event
Log.d("MyBroadcastReceiver", "Battery is low!")
}
}
}
브로드캐스트 등록
1. 매니페스트에 등록하기(정적 등록) : 앱이 실행 중이지 않아도 처리해야 하는 이벤트에 사용한다. 인텐트 필터를 추가한다.
<receiver android:name=".MyBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BATTERY_LOW" />
</intent-filter>
</receiver>
2. 코드 통한 정적 등록 : 앱이 활성화돼 있거나 특정 상태일 때만 처리돼야 하는 이벤트에 사용
val receiver = MyBroadcastReceiver()
val intentFilter = IntentFilter(Intent.ACTION_BATTERY_LOW)
registerReceiver(receiver, intentFilter)
반응형