안드로이드 AlarmManager 이후 서버 통신 질문 입니다.

조회수 401회

안녕하세요! 알람 매니저를 이용하여 앱을 제작하고 있습니다. 앱의 전체적인 구현 의도는 핸드폰 사용과 상관없이 정확히 매 시간마다 서버와 통신을 하여 값을 받아오도록 하는 것입니다.

정확한 시간에 작동해야 하므로 setAlarmClock()을 이용해서 알람 매니저를 구현하고 있는데 처음에 unix Time 및 calendar를 이용해서 언제 알람이 울릴지 시간을 맞춰놓고 테스트한 결과 앱 진입, 앱 빠져나왔을 때, 그리고 도즈 모드일 때 이 3가지 상태에서 의도대로 알람이 잘 작동되었습니다.

코드가 잘 작동됐음을 확인하고 이후 저희 서버와 통신을 시도하려고 코드를 다음과 같이 수정하였습니다.

첫 번째 알람이 울렸을 때 브로드캐스트 내부 onReceive()에서 서버와 통신을 하여 값을 받고 다시 알람을 setAlarmClock() 으로 set 하는 것으로 구현을 했습니다.

근데 이렇게 하니까 화면이 켜있을 때만 알람이 울리고 도즈모드 때는 브로드캐스트에서 알람이 울리는 현상은 확인 되었지만 바로 직후에 발동하도록 구현한 서버 통신은 잘 작동하지 않는 듯 합니다. 처음에는 갑자기 알람조차 울리지 않는가라고 의심을 했었으나 공식 문서 확인 결과 도즈 모드 시에는 "네트워크 액세스가 정지된다."라고 쓰여 있었고 그 문서대로 알람은 제대로 울렸으나 서버 통신은 작동하지 않았습니다. (https://developer.android.com/training/monitoring-device-state/doze-standby?hl=ko)

혹시 알람 매니저를 이용해서 서버 통신, 또는 제 구현 의도대로 앱을 구현해보신 분들 계시면 조언 꼭 부탁드립니다!

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)