[android] WakefulBroadcastReceiver 를 알아보자! |
https://developer.android.com/reference/android/support/v4/content/WakefulBroadcastReceiver
-
우선 시작하기에 앞서 이 녀석은 26.1.0 에서 deprecated 되었으며 그 이유는..
Android O 에서 background restriction 이 생겼기 때문이다.
그래서 이 녀석 대신 JobScheduler 를 사용하는 것이 권장된다.
-
이 녀석은 원래 BroadcastReceiver 의 한 형태로, device wakeup event 를 받아서 그 작업 처리를 Service 에 넘기는 역할을 했던 녀석이다. 또한 그 과정중에 device 가 sleep 되지 않음을 보장해주는 녀석이다.
이 녀석은 partial wake lock 을 사용해서 이를 보장해주었다.
그래서 WAKE_LOCK permission 이 필요하다.
이 녀석이 사용하는 wake lock 은 "androidx.core:wake:<component-name>" 이름을 가지고 있다.
-
이 녀석에서 service 를 실행시킬때는 startWakefulService() api 를 사용한다.
startService 와 동일하지만 wake lock 을 잡는다는 차이가 있다.
-
단.. 이 녀석 좀 어글리한 모습을 가지고 있는데...
Service 를 마치고 wake lock 을 해지하는 작업을 해주어야 한다...
이 때 호출한 WakefulBroadcastReceiver 의 static function 인 completeWakefulIntent(intent) 를 호출해주어야 한다…
-
결론적으로는 이 녀석은 deprecated 되었고 JobScheduler 를 사용하라고 가이드 하고 있기 때문에, 새롭게 쓸 일은 없을 것이고.. 저런 녀석이 있었구나.. 정도만 알면 될 것 같다.
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
[android] Dagger2 for Android Beginners (0) | 2018.12.03 |
---|---|
[android] Oreo 에서는 Wakelock 이 소용 없다?! (0) | 2018.12.02 |
[android] NoClassDefFoundError for SafeBrowsingResponse (0) | 2018.11.30 |
[android] Cookie 는 android 단말에서 world wide 한가? (0) | 2018.11.29 |
[android] JobIntentService 소개 (tutorial) (0) | 2018.11.28 |
댓글