2014-05-12 4 views
1

Android API, 특히 Alarms, IntentService 및 알림과 함께 작업하고 있습니다. AlarmManager을 사용하여 알림을 시작할지 여부를 결정하는 정기 IntentService을 예약합니다.기기가 잠자기 상태 일 때주기 알림이 작동합니까?

내 질문은 장치가 절전 모드 일 때 어떻게됩니까?

  1. 알람이 울리지 않으므로 IntentService가 전혀 실행되지 않습니다. 이것이 사실이 될지 확실하지 않습니다. WakefulIntentService로 만들면 차이가 있습니까? BroadCastReciever가 돌아온 후에 서비스가 계속 실행되도록하기 위해 잠자기 잠금이 필요하다고 생각합니다. 그러나이 경우에는 브로드 캐스트 수신자가 없습니다.

  2. 알람 및 IntentService는 실행되지만 장치가 절전 모드이면 아무런 영향을 미치지 않습니다. 이 경우 PowerManager에서 경고 알림을 받기 위해 명시 적으로 경고등을 가져야합니까? 기기가 절전 모드에있을 때

+0

예 부분 웨이크 잠금 장치를 사용하여 알림을 보내고 있습니다. 그것은 나를 위해 잘 작동합니다. – Skynet

답변

2

은 어떻게됩니까?

알람 유형과 PendingIntent이 호출 할 구성 요소에 따라 다릅니다. 알람 유형이 _WAKEUP에 종료하고 방송 PendingIntent를 사용하는 경우

, 장치가 일어나고 BroadcastReceiveronReceive()에 대한 호출을 통해 깨어 유지됩니다. onReceive()이 반환되면 장치가 다시 잠들 수 있습니다. 이것이 과 WakefulBroadcastRecevier 인 이유입니다. 제어를 IntentService에 전달하는 방법에 대한 테스트 패턴을 제공하고 서비스가 작업을 완료하는 동안 장치를 계속 깨우는 이유입니다.

알람 유형이 _WAKEUP으로 끝나고 PendingIntent 브로드 캐스트를 사용하지 않는 경우, 귀하의 마일리지가 달라질 수 있습니다. 장치가 잠자기 전에 다시 제어 할 수 없습니다. 이것은 권장되는 패턴이 아닙니다.

알람 유형이 _WAKEUP으로 끝나지 않으면 알람으로 인해 장치가 깨어나지 않습니다.

API의 성질을 고려할 때, 우리는 정확한 순간을 알지 못하기 때문에 벨소리 또는 진동 패턴을 재생할 수있을만큼 장치를 깨우는 것이 OS의 책임이라고 희망합니다 Notification이 나타나면 벨소리가 재생되는지 여부도 알 수 없습니다 (예 : 기기가 무음 모드에 있음).

관련 문제