서비스는 시작된 어플리케이션과 같은 프로세스, 기본 스레드에서 실행된다.
하지만 서비스는 어플리케이션과는 별개의 앱처럼 동작한다. 즉, 사용자가 앱을 꺼도 서비스는 동작한다.
때문에 서비스를 멈춰주는건 프로그래머의 몫이다.
별개의 앱처럼 동작하면서도 앱의 구성요소들을 사용할 수 있는게 특징이다.
참고로
stopService는 서비스 중지를 요청할 뿐이지, 바로 멈추지는 않는다.
때문에 서비스를 사용하는 앱이나 컴포넌트가 여러개일때
A에서 stopService() -> B에서 startService() -> 서비스 중지
이렇게 되면 B의 startService요청은 묵살되기 때문에 (예상한건 A에서 stopService() -> B에서 startService() 였다)
stopSelf(startId) 서비스 시작시 받은 서비스 id를 명시해줘야한다.
'안드로이드 앱개발' 카테고리의 다른 글
사내 카페 주문앱 개발기(1): 클린아키텍쳐 (0) | 2021.11.27 |
---|---|
레거시 코드 리팩토링과 코틀린 마이그레이션 (0) | 2021.09.15 |
Permission (0) | 2021.09.04 |
Dagger2 Scope (0) | 2021.09.04 |
클린아키텍쳐에서의 usecase 분리 (0) | 2021.04.27 |