Study/Android

브로드캐스트 리시버 BroadCast Receiver

hegunhee 2021. 10. 30. 11:02

안드로이드의 4대 구성요소중 하나인 브로드캐스트 리시버에 대해 알아보겠습니다.

Broadcast는 전화 혹은 문자등 어떤 행위가 왔다는 알림을 받아 방송을 해주는 기능입니다.

Intent를 통해 발송되고, 이렇게 발송된 방송은 BroadCast Receiver 객체가 수신을 하게됩니다.

브로드캐스트는 여러 방송을 할 수 있는데, 그중 두가지 방법을 소개하도록 하겠습니다.

1. 미리 정의된 방송


안드로이드 기기에 각 상황에따라 미리 정의된 발송을 하며, 해당 방송을 잘 수신하여 적당한 처리를 할 수 있습니다.

충전중, 비행기모드 등등 여러가지가 있습니다.

이런 표준 브로드캐스트를 Receive 하는것이 글로벌 방송 수신이라고 합니다.

File -> new -> others -> Broadcast Receiver로 만들 수 있으며 이렇게 만들경우 자동으로 매니페스토에 등록이 됩니다.

BroadcastReceiver 객체를 상속중이며 onReceive 함수안에서 intent를 받아 해당 방송에따라 명령을 처리합니다.

그리고 커스텀으로도 방송을 만들 수 있으며 이름은 패키지명.방송이름 으로 만들 수 있습니다.

이거는 companion object 안에 const val 타입으로 만들어줍니다.

activity안에 전역변수로 Receiver 객체를 만들어줍니다.

onCreate안에서 인스턴스를 만들어줍니다.

그리고 lifecycle을 준수하여 화면이 가려지거나 다른 액티비티로 이동되어서 돌아왔을때 작동하는 onResume안에서 Receiver를 등록해주고 onPause에서 해제해줍니다.

등록은 IntentFileter 객체에 해당 방송들을 등록해줍니다.

마지막으로 registerReceiver(리시버객체, 필터)로 등록해줍니다.

이런식으로 등록, 해제해주시면 됩니다.

그리고 핸드폰의 상태에따라 변화하는경우 자동으로 리시버객체가 상태를 알려주지만 커스텀으로 만든것들은

필요한 상황에 방송을 해줄 수 있습니다.

버튼을 눌렀을때 방송을 하기위해 리스너에 intent를 만들고 sendBroadcast(intent)를 해주면 방송이 시작됩니다.

 

'Study > Android' 카테고리의 다른 글

서비스 컴포넌트  (0) 2021.12.24
액티비티 생명주기  (0) 2021.12.20
인텐트  (0) 2021.12.19
액티비티의 life cycle  (0) 2021.10.29
안드로이드 4대 컴포넌트(구성요소)  (0) 2021.10.28