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

핸드폰 다시시작 했을때 Foreground Service 에 대해 질문입니다.

0 추천
어플 실행시 Foreground Service 가 동작안하고 있을때만 서비스를 실행을 하고 싶은데 어떻게 해야 할지 잘 모르겠네요.

현재 어플 초기 실행시 Foreground Service 를 동작 시키고 서비스 onCreate 에서 preferences 로 서비스 동작을 true 로 주고 다음 어플 실행시에는 서비스가 중복 동작 하지 않도록 하고 있습니다. 그리고 서비스 onDestroy 에서 다시 false 를 주는 것이죠. 그런데 문제는 핸드폰을 재부팅할때 onDestroy 가 수행하지 않고 종료가 되네요. 그래서 다음 실행때 preferences 값이 true라서 Foreground Service 를 동작 시키지 못하고 있습니다.

위 방법을 시도한 이유는 API 21 부터 ActivityManager 가 제공하는 getRunningServices 가 deprecated 되었다고 하여 서비스 실행 여부를 판단할 다른 방법을 찾지 못하여서 였습니다.

 

그렇다면 어떤 방법을 통해서 목표를 달성할 수 있을까요.

다른 대안으로 생각하고있는건 핸드폰 켜자마자 리시버를 등록하여 자동으로 실행시키는 것인데 아직 시도는 하지 않은 상황입니다.

 

많은 조언 부탁드립니다.
맨날오류남 (160 포인트) 님이 2019년 11월 5일 질문

답변 달기

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