마스터Q&A
접속유지
가입하기
안드로이드 Q&A
최근 질문
미답변 질문
태그
사용자
질문하기
마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다.
안드로이드펍
에서 운영하고 있습니다. [
사용법
,
운영진
]
인기있는 태그
초보어플개발
(3427)
안드로이드스튜디오
(2664)
안드로이드-초보어플개발
(1333)
안드로이드-스튜디오
(1086)
도와주세요-
(995)
이미지
(970)
listview
(866)
리스트뷰
(844)
오류
(805)
레이아웃
(693)
fragment
(675)
webview
(670)
BroadcastReceiver가 앱이 종료돼도 계속 동작하게 하는 법
0
추천
Screen ON, OFF 이벤트를 받고있습니다.
앱이 종료되어도 쭉 이벤트를 수신할 수 있는 방법이 있나요?
android
broadcast
receiver
background
음무
(
17,820
포인트)
님이
2019년 1월 15일
질문
Please
log in
or
register
to add a comment.
답변 달기
·
글에 소스 코드 보기 좋게 넣는 법
·
질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
답변이 채택되거나 답변에 댓글이 달리면 이메일로 알려드립니다:
답변이 채택되거나 댓글이 달리면 이메일로 알려드립니다
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면
로그인
하거나 혹은
가입
하세요.
1개의 답변
0
추천
원래는 앱이 제거되기 전 까지는 잘 작동할텐데요?
이벤트는 수신했지만, 그 이후의 작업이 안되서 질문을 하시는 건지 로그를 찍어보세요.
쎄미
(
162,410
포인트)
님이
2019년 1월 15일
답변
어떤 방식으로 구현해야하나요 ?
1. 브로드캐스트리시버를 상속받는 클래스 생성 -> 메인액티비티 실행시 해당 리시버 등록
= 언레지 하지 않았음에도 앱 종료 후 이벤트를 받지 못하네요
2. 30초마다 지속적으로 서비스를 호출, 서비스에서 BroadcastReceiver 생성 후 등록
= 다음날 리시버가 이벤트를 받지 못하는현상 발생 ..
단순히 생각 했을때는 1번 방식으로 하면 언레지를 호출하기 전까지는 앱이 종료되어도 계속 이벤트를 받을 수 있어야할것같은데 .. 그러지 않으니 의아하네요
정확히는
브로드캐스트리시버를 상속받는 클래스 생성, 매니패스트에 리시버 등록
메인액티비티 실행시 리시버클래스 레지 등록
앱 실행중에는 온오프를 잘 받는데 앱 종료 후 받지못하고있네요 ..
액티비티에서 등록/해제하면 앱 종료되면 못 받는게 당연하고요, manifest에 등록해놓으면 앱 종료와는 무관하게 받을 수 있습니다.
manifest에 등록해놨으면 굳이 액티비티에서 등록/해제할 필요 없고요.
아마 앱 종료 후에 리시버에서는 받았는데, 액티비티가 없어서 다음이 진행 안되는 것 같으니 로그 찍어보세요.
manifest에 receiver 등록하셨으면 앱 종료 여부와는 상관없이 서비스 돌아갑니다.
실행중엔 잘돌아가고 종료 후엔 안돌아가는거면 아마 라이프 사이클 관련인듯 합니다.
2번같은 경우는 AlarmManager를 이용하셔서 해결하시면 되구요.
6.0부터는 매니패스트에 등록해도 ON/OFF 이벤트는 못받는것같더라구요 ..
AlarmManager를 이용해 서비스로 리시버를 등록해서 하는 경우
백그라운드에서 wifi size가 0이나오는경우는 어떻게 해야할까요 ?
AlarmManager는 System Clock으로 스케줄링하기 때문에 네트워크 상태와는 연관 없습니다.
단, 버전에 따라 동작을 구현해줘야 되고, 복잡한 시간 계산을 해야되기 때문에 FCM을 이용하는걸 추천드립니다.
Please
log in
or
register
to add a comment.
...