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

시작 타입의 서비스(started service)의 종료 시점은?

0 추천
사용자 위치를 주기적으로 파악하는 것이 서비스가 할 일입니다.

액티비티에서 startService()로 서비스가 시작하면 앱이 종료하더라도 계속 서비스가 진행되게 하고 싶습니다.

마치 카톡을 종료하더라도 카톡 메세지가 도착하면 화면에 알려주는 것 처럼요..

이런 경우 stopService는 따로 호출 안해도 되는 건가요? 해줘야 하면 어디서 해줘야 할까요?
빙구짱 (1,720 포인트) 님이 2015년 2월 25일 질문

1개의 답변

0 추천
 
채택된 답변
카톡 메세지는 서비스가 아니라 리시버입니다.

startService()를 해주면 특이한 경우가 아니라면 전원이 꺼질때까지 살아있습니다.

만약에 어플의 설정같은곳에서 서비스 시작/종료를 구현하고 싶다면

그기에서 startService()/stopService()를 해주는 것이 좋습니다.

서비스도 시스템리소스를 잡아먹기때문에

서비스가 시작된다는 것을 사용자에게 알려주어야 하고

사용자에 의해 중단할수도 있어야 합니다.(구글정신에 입각하여...)
nicehee (73,100 포인트) 님이 2015년 2월 25일 답변
빙구짱님이 2015년 2월 26일 채택됨
답변 굉장히 감사합니다^^
서비스 관련해서 또 질문이 있는데요
서비스가 하는 일은 위에 질문처럼 사용자 위치를 주기적으로 파악하는 것입니다.
그리고 질문처럼 앱의 시작과 동시에 서비스가 시작해서 앱이 종료되어도 서비스는 계속 진행해야합니다. 그래서 시작타입 서비스가 적합하다고 생각했습니다. 그런데 이 서비스가 사용자 위치파악을 한뒤 액티비티에 사용자 위치가 어디라고 알려주는 기능을 넣고 싶습니다. 이렇게 서비스가 한 일의 결과를 액티비티가 받는 경우 연결타입 서비스를 이용한다고 알고 있습니다. 그럼 저 같은 경우 두가지를 다 이용해야할것 같은데 보통 이런경우 어떤식으로 구현하나요?
한마디로 서비스는 계속 진행하되 액티비티에 결과를 넘길 수 있는 기능이 있어야하는 서비스 구현입니다
서비스에서 필요할때 액티비티를 콜하고 그때 값을 넘기시면 되실건데요
액티비티가 살아있을때 넘기고 싶으면 BR에 실어서 던지시면 되실꺼공
...