Android

BroadcastReceiver vs WakefulBroadcastReceiver

plandis 2016. 2. 15. 15:44

서비스에서 알람을 통해 브로드캐스팅 할 상황이 생겼다..
로그상 서비스는 알람을 호출 했다고 판단되지만 onrecieve(?)는
호출이 되지 않는 현상을 발견...cpu가 주무시는 시점이여서 그렇지 않을 까라고 생각함

WakefulBroadcastReceiver 라는 놈이 있다는 것을 알았고 구글님께 질의

BroadcastReceiver

* It is not guaranteed that CPU will stay awake if you initiate some long running process. CPU may go immediately back to sleep.

WakefulBroadcastReceiver

* It is guaranteed that CPU will stay awake until you fire completeWakefulIntent

 

브로드캐스트를 받았을 때 WakefulbroadcastReceiver는 wakelock이 실행 될 때까지 기다려주고 cpu는 service에서 completewakefulIntent가 발생할 때까지 sleep상태가 되지 않을 것이라고 한다.

 

정확한 원인 및 해결책인지는 모르겠으나 우선 guaranteed cpu will stay awake 라고하니 두고봐야 겠다