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

앱이 프로세스에서 빠지더라도...

0 추천
안녕하세요.

앱을 사용하다보면 여러앱을 사용하게 되는데요.. 그래서 어느순간 제 앱이 프로세스에서 제외되는데요..

그때도 서비스를 살릴 수있는방법이 있을까요? 서비스가 자꾸 죽는거 같네요...
익명사용자 님이 2013년 10월 31일 질문

2개의 답변

0 추천
aucd29 (218,390 포인트) 님이 2013년 10월 31일 답변
0 추천

원문 : http://arabiannight.tistory.com/247

원문을 천천히 잘 읽어보시면 도움이 될 겁니다.

 

onStartCommand의 리턴값을 다음과 같이 정의하시면 됩니다.

 

START_STICKY : Service가 강제 종료되었을 경우 시스템이 다시 Service를 재시작 시켜 주지만 intent 값을 null로 초기화 시켜서 재시작 합니다. 

 Service 실행시 startService(Intent service) 메서드를 호출 하는데 onStartCommand(Intent intent, int flags, int startId) 메서드에 intent로 value를 넘겨 줄 수 있습니다. 기존에 intent에 value값이 설정이 되있다고 하더라도 Service 재시작시 intent 값이 null로 초기화 되서 재시작 됩니다. 

 START_NOT_STICKY : 이 Flag를 리턴해 주시면, 강제로 종료 된 Service가 재시작 하지 않습니다. 시스템에 의해 강제 종료되어도 괸찮은 작업을 진행 할 때 사용해 주시면 됩니다. 

 START_REDELIVER_INTENT : START_STICKY와 마찬가지로 Service가 종료 되었을 경우 시스템이 다시 Service를 재시작 시켜 주지만 intent 값을 그대로 유지 시켜 줍니다. startService() 메서드 호출시 Intent value값을 사용한 경우라면 해당 Flag를 사용해서 리턴값을 설정해 주면 됩니다.

Gradler (109,780 포인트) 님이 2013년 10월 31일 답변
...