본문 바로가기
Android/공부노트

[안드로이드] 브로드캐스트 리시버 예제

by ESHC 2022. 6. 11.

Android Component 중 하나인 Broadcast Receiver에 관한 예제입니다.

 

브로드캐스트 리시버를 통해 시스템 시각이 1분마다 Toast 메세지를 띄우는 예제입니다.

 

 

1. Broadcast Receiver 생성

package com.eshc.androidcomponentexample.broadcastreceiver

import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent

class TimeCheckBroadcastReceiver : BroadcastReceiver() {

    override fun onReceive(context: Context, intent: Intent) {
        // This method is called when the BroadcastReceiver is receiving an Intent broadcast.
        TODO("MyReceiver.onReceive() is not implemented")
    }
}

BroadcastReceiver를 생성하면 위와 같이 만들어진다. 

 

2. onReceive() 구현

package com.eshc.androidcomponentexample.broadcastreceiver

import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.widget.Toast

class TimeCheckBroadcastReceiver : BroadcastReceiver() {

    override fun onReceive(context: Context, intent: Intent) {
        Toast.makeText(context,"Time Check",Toast.LENGTH_SHORT).show()
    }
}

브로드캐스트를 receive할 때 실행할 코드를 작성한다.

간단하게 Toast 메시지를 띄운다.

 

3. Broadcast Receiver 등록

class MainActivity : AppCompatActivity() {
	...
    
    override fun onCreate(savedInstanceState: Bundle?) {
        ... 
        setBroadcastReceiver()
    }

    private fun setBroadcastReceiver(){
        val intent = IntentFilter(Intent.ACTION_TIME_TICK)
        val receiver = TimeCheckBroadcastReceiver()
        registerReceiver(receiver,intent)
    }
}

브로드캐스트 리시버를 등록할 컴포넌트에 리시버를 등록한다.

MainActivity에 registerReceiver를 통해 등록하는데

이 때 IntentFilter를 사용하는데 ACTION_TIME_TICK로 분이 바뀔 때 브로드캐스트하도록 한다.

분이 바뀔 때 Toast 메시지 확인 가능

 

[참고]

https://github.com/eshc123/AndroidComponentExample/blob/main/app/src/main/java/com/eshc/androidcomponentexample/broadcastreceiver/TimeCheckBroadcastReceiver.kt

 

GitHub - eshc123/AndroidComponentExample

Contribute to eshc123/AndroidComponentExample development by creating an account on GitHub.

github.com

https://developer.android.com/guide/components/broadcasts?hl=ko 

 

브로드캐스트 개요  |  Android 개발자  |  Android Developers

브로드캐스트 개요 Android 앱은 Android 시스템 및 기타 Android 앱에서 게시-구독 디자인 패턴과 유사한 브로드캐스트 메시지를 받거나 보낼 수 있습니다. 관심 있는 이벤트가 발생할 때 이러한 브로

developer.android.com

 

댓글