마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 wakelock

0 추천
안녕하세요 초보개발자입니다

현재 mqtt기반으로 푸시알림을 테스트중입니다

서버에 mqtt brocker설치(mosquitto사용) 후 안드로이드 mqtt client lib paho를 사용해서

푸시를 받고있습니다 .

broker와 지속적인 커넥션유지를 위해 paho 내부적으로 1분단위로 정확히 bearbeat message를 보내는걸 확인했습니다 .

기기가 sleep 모드로 들어갈시는 heartbeat messsage를 보낼수없으니 brocker와 커넥션이 끊어지게 됩니다 .

그래서 사용한것이 wake lock인데요 . wake lock을 걸어서 sleep 모드에서도 heartbeat 메세지를 보내 정상적으로 커넥션이 유지가됩니다.

지금 구조는, 앱설치후 네트워크연결이되어있으면 wake lock은 절대꺼지지않도록되어있습니다 . 배터리가 걱정되긴하나,

무조건 1분단위로 brocker와 통신을 해야할려면 어쩔수없다고 생각합니다

좀더 나은 방법을 찾고있는데요.

alaramanger도 사용해봤는데. alaramanager 로 1분단위로 메세지를 보내고 wakelock을 해제하는 방법도 사용해보았으나,

sleep이 아닌 상태에서는 정상적으로 1분단위로 스케줄링이돌아가나,

sleep 상태일때는 분명 60초로 설정해둔것이 5분단위로 보내집니다 . 당연히 brocker와 통신이 끊어지겠죠 .

또한 alaramanager는 1초든 10초든 30초든 무조건 1분이 최소값으로 적용되어집니다 . (android 5.1 lollipop 기준)

요점은 . wake lock을 최소한 사용하지않고 1분간격으로 brocker와 통신할수있는 방법을 찾고싶습니다. 고수분들 도와주세요 .

 

ps 카카오톡이나 라인 페이스북 과 같은 상용 앱 서비스는 어떤구조로 되어있는지 아시는분있으면 답변좀 부탁드립니다

그런 sns 앱들도 분명 푸시를 받을려면 주기적으로 통신을 해야할텐데 뒷단에서 저와같은 방법을 사용하는지,(wake lock 을 release 하지않는) 아니면 , GCM을 사용하는지,

GCM구조를 알고계시는분도 알려주시면 감사하겠습니다 .
AceptablePark (160 포인트) 님이 2016년 3월 16일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...