https://developer.android.com/develop/background-work/background-tasks/broadcasts?hl=ko
브로드캐스트 개요 | Background work | Android Developers
이 페이지는 Cloud Translation API를 통해 번역되었습니다. 브로드캐스트 개요 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Android 앱은 게시-구독 디자인 패턴
developer.android.com
Android 시스템 및 다른 Android 앱에서 브로드캐스트 메시지를 보내거나 받을 수 있습니다.
- Android 시스템은 시스템이 부팅될 때 ,
- 기기가 충전을 시작할 때,
- 시스템이 비행기 모드로 전환하거나 비행기 모드를 해제할 때 등
--> 다양한 시스템 이벤트가 발생할 때 브로드캐스트를 전송합니다.
앱은 특정 브로드캐스트를 수신하도록 등록할 수 있습니다. 브로드캐스트가 전송되면 시스템은 특정 유형의 브로드캐스트를 수신하도록 구독한 앱에 브로드캐스트를 자동으로 라우팅합니다.
1. Broadcast Receiver 생성
Manifest 파일에도 <receiver> 가 추가된 것을 확인할 수 있다.
공식 홈페이지에서도 확인할 수 있듯이 앱의 매니페스트에서 intent-filter를 작업할 수도 있다.
<!-- If this receiver listens for broadcasts sent from the system or from
other apps, even other apps that you own, set android:exported to "true". -->
<receiver android:name=".MyBroadcastReceiver" android:exported="false">
<intent-filter>
<action android:name="APP_SPECIFIC_BROADCAST" />
</intent-filter>
</receiver>
이 방법 외에 서비스에 직접 리시버를 만들고 등록하는걸로 작업하기로.
예제에서는 배터리가 낮을때임.
서비스 파일에서
// 리시버 선언
private val receiver = LowBatteryReceiver()
// onCreate 에서 리시버 불러오기
...
initReceiver()
// 리시버 초기화 함수
private fun initReceiver() {
val filter = IntentFilter().apply {
addAction(Intent.ACTION_BATTERY_LOW)
}
registerReceiver(receiver, filter)
}
// onDestroy 에서 레지스터 해제
unregisterReceiver(receiver)
생성시켰던 Broadcast Receiver 파일에서 작업을 처리해줄 수 있다.
onReceive 에서
// 배터리가 낮을때 토스트 메세지 띄워주기
when(intent.action){
Intent.ACTION_BATTERY_LOW ->{
Toast.makeText(context, "배터리가 부족합니다.", Toast.LENGTH_SHORT).show()
}
}
%%%%%%% build.gradle 에 디펜던시가 추가돼있는지 확인해보기 ( 위 구글 링크 참고)
dependencies {
val core_version = "1.12.0"
// Java language implementation
implementation("androidx.core:core:$core_version")
// Kotlin
implementation("androidx.core:core-ktx:$core_version")
...
'Android' 카테고리의 다른 글
Android / 탭+뷰페이저에서 onBackPressed 작동안됨. 해결. (0) | 2024.03.26 |
---|---|
Android / onBackPressed deprecated. (0) | 2024.03.14 |
Android / MediaPlayer (0) | 2024.03.08 |
Android/Kotlin 화면 켜짐 유지 keep screen on (1) | 2024.02.06 |
Android/Kotlin 이메일 텍스트를 클릭할 수 있게 만들기 (0) | 2023.10.18 |