-
반응형
안녕하세요, 하루플입니다.
이전에 AlramManager에 대해서 알아보았습니다.
AlramManger를 쓸 때 BroadcaseReceiver를 상속받은 클래스를 활용해야 스마트폰을 재부팅 했을 때나 앱이 종료된 상태에서도 알림을 받을 수 있습니다. 이 BroadcaseReceiver에 대해서 알아보겠습니다.
class NotificationReceiver : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { // Create a notification val notification = NotificationCompat.Builder(context!!, "channel_id") .setContentTitle("Notification Title") .setContentText("Notification Text") .setSmallIcon(R.drawable.notification_icon) .setPriority(NotificationCompat.PRIORITY_DEFAULT) .build() // Show the notification val notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager notificationManager.notify(0, notification) } }
이 코드에서는 BreoadcaseReceiver를 확장하는 NotificationReceiver 라는 클래스를 만들었습니다. 이 클래스는 AlarmManager에 의해 알림 처리를 담당하게 됩니다.
onReceive() 함수는 BroadcaseReceiver가 Intent를 수신할 때 호출됩니다. 즉, 알림을 트리커 하는데 사용됩니다. 함수는 먼저 NotificationCompat.Builder 클래스를 사용하여 알림을 생성합니다. 알림에는 제목, 내용 및 작은 아이콘을 넣을 수 있습니다. 그리고 알림의 우선 순위를 PRIORITY_DEFAULT로 설정합니다.
알림을 만든 후 함수는 NotificationManager 클래스를 사용해 알림을 표시합니다. 알림에는 ID 0 을 할당했고 나중에 필요한 경우 이 ID 를 사용해 취소하는데 사용할 수 있습니다.
이제 Broadcast Receiver에 대해 자세히 살펴보겠습니다.
Broadcast Receiver는 애플리케이션이 시스템 전체의 브로드캐스트 알림을 수신하고 이에 응답할 수 있도록 하는 Android 구성 요소입니다. 브로드캐스트를 사용하여 사용자가 화면을 끄거나 배터리가 낮아지는 등 다양한 시스템 이벤트를 앱에 알릴 수 있습니다.
BroadcastReceiver가 Intent를 호출되는 onReceive() 함수를 재정의해서 원하는 기능을 수행할 수 있습니다. 인텐트에는 수행할 작업과 브로드 캐스트와 관련된 정보가 포함됩니다.
BroadcastReceiver를 사용하려면 매니페스트 파일에서 해당 클래스를 선언해야합니다. BroadcastReceiver는 다음과 같은 다양한 용도로 사용할 수 있습니다.
- 장치가 재부팅되거나 배터리가 낮아지는 것과 같은 이벤트에 응답
- 네트워크 연결 변경 모니터링
- 수신한 SMS 메세지 또는 전화 통화
- AlramManager를 사용해 백그라운드 작업 트리거
반응형'개발 > Android' 카테고리의 다른 글
[kotlin] 안드로이드스튜디오 Activity에서 Activity 트랜지션 애니메이션 적용 (0) 2023.03.05 [Kotlin] 안드로이드스튜디오 Fragment에서 Fragment 복합 트랜지션 (여러 애니메이션 동시 적용) (0) 2023.03.04 [Kotlin] 안드로이드스튜디오 AlramManager 기능 및 사용방법 (0) 2023.02.25 이펙티브 코틀린 : 예외를 활용해 코드에 제한을 걸어라 (0) 2023.02.19 이펙티브 코틀린 : 변수의 스코프를 최소화하라 (0) 2023.02.18 댓글