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

앱을 종료하면 Service가종료 됩니다.

0 추천
안녕하세요.

앱이 종료되어도 백그라운드에서 한 시간 마다 3~4초 정도 걸리는 http req, res를 보내고 받기 위해서 service를 이용하려고 예제들을 보고 돌려봤습니다.

예제를 7~8개 정도 찾아보면서 실행 시켜보았는데 전부 앱이 실행중에는 정상적으로 돌아가는데 앱이 꺼지면 서비스도 같이 꺼졌습니다(서비스 안에서 timer thread로 3초마다 log찍어 보았습니다).

마지막으로 본 예제가 시연영상도 있어 기대를 갖고 실행 해보았는데도 위와 같은 일이 일어났습니다.

안드로이드가 업데이트 되면서 막힌건지, 예제가 잘못 된 건지 궁금합니다.

그리고 service와 scheduler 둘 중에 제가 원하는 작업을 간단하게 구현 할 수 있는게 무엇인가요(min21, max28)?

마지막으로 본 예제: http://twinw.tistory.com/50
reallyNewbie (150 포인트) 님이 2018년 12월 6일 질문
reallyNewbie님이 2018년 12월 6일 수정

1개의 답변

+1 추천

앱이나 액티비티가 종료되어도 살아있는 서비스를 만드시려면 foreground service를 실행시켜야 합니다.

foreground service는 service 실행은 notification을 통해 필수적으로 알려야하며 notification이 없으면 바로 종료됩니다. 

oreo 버전부터 변경된 것으로 알고 있습니다.

 

원하시는 작업내용을 보면 

1. 앱의 실행 유무와 상관없이 service가 계속 살아있어야함 

2. 간단한 작업을 주기적으로 실행 

하는 작업인것 같은데

 

서비스 내부에 타이머를 두고 서비스 내부에서 핸들러를 통해서 조작하면 될 것 같습니다.

 http req, res 이후 ui 변경 작업이 이루어 져야 한다면 AsyncTask를 추가로 사용하시면 될것 같구요.

커피콩 (3,640 포인트) 님이 2018년 12월 8일 답변
답변 달리기 전까지 놀고 있을 수 없어 firebase job dispatcher로 구현했습니다.

firebase 사용하다가 또 막히면 답변 주신대로 해보겠습니다.

감사합니다
...