관리 메뉴

나만을 위한 블로그

[Manifest-Android] 10. 브로드캐스트 리시버 본문

스터디

[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)

 

반응형
Comments