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

죽지않는어플 만드는 중 startForeground관련..

0 추천
Foreground를 사용하여 백그라운드로 돌고있는 어플을 죽였을때 죽지않게 하였습니다.(배터리세이브같은 어플로 죽이려 할때)

그런데 Foreground를 사용하지않을땐 설정->앱->실행중어플죽이기 로 죽인다면 onDestroy()가 제대로 실행되는데,

startForeground를 사용하여 연동시키면, 설정->앱->실행중어플죽이기로 죽이면 onDestroy()가 실행안되고 그냥 죽어버립니다..

onDestroy()가 실행되어야 알람을 이용해서 다시 되살아날텐데말이죠..

Foreground를 사용하면 원래 어플죽일때 onDestroy()가 실행되지 않는건가요? 방법이 있다면 조언부탁드립니다.
배재똥똥 (1,200 포인트) 님이 2015년 4월 15일 질문

3개의 답변

0 추천
onDestroy는 원래 시스템 리소스의 회수가 실제로 일어나는 시점(가베지 콜렉팅)에 호출됩니다.

화면에서 사라지는 시점에 onDestroy가 호출된다는 보장이 전혀 없습니다.

다른 방안을 강구하세요.
익명사용자 님이 2015년 4월 15일 답변
0 추천
onDestroy는 항상 호출된다는 보장이 없습니다.
익명사용자 님이 2015년 4월 15일 답변
0 추천
지나가다가 한마디만...

 

굳이 사용자가 설정에 들어가서 앱을 선택하고, 실행중지를 명시적으로 한다는 것은 진짜 사용자가 종료를 간절히 원하는거 아닐까요?

 

다시 살릴필요가 있을까 싶습니다.

 

저도 그런앱 만들면서 이것저것 건드려봤더니

 

대부분의 앱들이 그런식으로 종료하면 서비스 다시 시작안했던걸로 기억합니다. 구글 앱의 경우도...
익명사용자 님이 2015년 4월 15일 답변
google LocationService는 그런식으로 종료를해도 자동 재시작 됩니다.
...