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

bindService startService 질문.

0 추천
안녕하세요 초보개발자입니다.

 

startService 와 bindService 의 차이점은 몇 몇 참고 자료를 보고 대충 알겠습니다.

 

궁금한건 bindService를 해도 service가 생성되고 startService를 해도 service가 생성이 되는데요

 

onStartCommand를 타냐 onBind를 타냐 차이도 있더라구요

 

저는 background service에서 계속 beacon을 스캔하는 작업을 하고 있는데요

 

스캔 결과를 액티비티로 띄워주고 액티비티에서 어떤 액션을 통해 service로 값을 전달하기 위해 bindService를 했습니다.

 

여기서 질문인데요

 

여태까지는 startService를 호출하지 않고 bindService만 호출 한 다음에 onBind 시점에 Beacon scan을 해도 되나요?

 

그래도 startService 했던 것 처럼 service가 계속 살아있는지.. 생명주기가 같은지.

 

혹은 startService 와 bindService를 두 번 호출해야 하는건지 궁금합니다..

 

두서없는 질문 글 읽어주셔서 감사합니다.
윤둥이 (4,560 포인트) 님이 2017년 12월 21일 질문

1개의 답변

+1 추천
 
채택된 답변
정확히는 역할이 다릅니다.

startService()는 말그대로 서비스를 시작하거나 살리는데 쓰이고,

bindService()는 특정 component와 서비스를 한 쌍으로 묶는 역할입니다.

이 두가지를 구분하는 것이 중요한 이유는 bindService는 묶여있던 component의

life-cycle이 끝나면 묶여있던 서비스도 바로 끝납니다.

반면 startService()는 메모리가 부족하여 서비스가 메모리에서 내려가더라도

Android 내부의 life-cycle 정책에 따라 다시 혼자서 살아날 수 있습니다.

(bindService()에는 이 정책을 이용할 수 없습니다.)
디자이너정 (42,810 포인트) 님이 2017년 12월 22일 답변
윤둥이님이 2017년 12월 22일 채택됨
댓글 감사드립니다.

그럼 죽지않는 서비스도 사용하고

액티비티와 서비스간 원활한 통신을 하고 싶으면

startService와 bindService를 둘 다 해주는게 낫겠네요..?
...