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

Service의 onStart()가 다시 불리는데, 질문이 있습니다.

+2 추천
안녕하세요.

Service를 사용해서, 백그라운드에서 지속적으로 가속센서의 값을 받아와 서버로 전송해주고 있습니다.

Service안에 타이머를 돌리고 있는데, 정상적으로 서비스가 죽지 않고 서버로의 전송도 잘되고 문제가 없습니다.

그런데,, 1시간 정도 지나고 나면, 전송 로그를  텍스트로 저장시켜놓기 때문에, 정상적으로 서비스가 계속 돌고 있다는 것이 확인이 되는데,

앱을 클릭하면, 서비스의 onStart에 찍어 놓은 로그가 나타나더라구요.

그렇게되면서 현재 서비스의 타이머가 돌고, 또 새로운 서비스가 시작되서 타이머 하나가 또 돌게 되고, 결국 이런 현상이 나타날때마다 타이머가 하나씩 늘어나버리게 되서,,,,

질문은, 왜 서비스가 돌고 있는 상황에서 다시한번 서비스가 시작되는 것인가요? StartService는 MainActivity의 onCreate에서 호출하는지라 한번만 불리게 됩니다. 그말은 시간이 지나면 앱은 종료가 됬는데, 서비스는 살아있다는 말인가요? 서비스를 하나만 유지하기 위한 방법이 없을까요?

조언부탁드립니다...
konori (530 포인트) 님이 2014년 2월 27일 질문

1개의 답변

+3 추천
아..자답입니다.

서비스의 생명 주기와 액티비티 생명주기가 독립적이군요..

서비스가 run 중인지 체크하는 것을 onCreate에 넣고 테스트 중입니다..ㅎㅎ
konori (530 포인트) 님이 2014년 2월 27일 답변
...