[안드로이드 스튜디오/코틀린] 서비스와 인텐트 서비스
2021. 5. 3. 10:47ㆍ안드로이드
SMALL
서비스
서비스 : 화면 없는 액티비티
-----------------------------------------------------------------------------------------------------
일반 서비스와 인텐트 서비스의 차이점
일반 서비스
- 메인 스레드(화면 담당 스레드)에서 동작한다.
- startService()로 서비스를 실행하면 내가 연결시켜준 MyService의 onStartCommand가 호출이 된다.
- 실행할 때마다 계속 호출된다.
- 메인 스레드에서 동작하기 때문에, 오래 걸리는 작업을 하면서 동시에 화면을 조작하고 싶으면 스레드로 처리하도록 작성해야 한다.
- stopService()를 호출하면 그때 스레드가 제거된다.
인텐트서비스
- Manifest에 등록해야 한다.
- 서브 스레드에서 동작한다.
- 실행하면 호출되고, 작업을 완료하면 자동으로 스레드가 제거된다.
- 호출한 순서대로 작업을 수행한다.
실행 방식에 따라 '스타티드 서비스' '바운드 서비스'로 나누어 진다.
스타티드 서비스 : 액티비티와 상관없이 독립적으로 실행할 때 사용하는 서비스
- 일반적으로 사용하는 서비스
바운드 서비스 : 액티비티와 값을 주고 받아야 할 떄 사용하는 서비스
- MyService()의 함수를 직접 호출이 가능하다. ㄱ
바운드 서비스 화면
LIST
'안드로이드' 카테고리의 다른 글
[코틀린] 간단한 음악 재생 플레이어 (0) | 2021.08.20 |
---|---|
Live Template 설정하기 (자주 쓰는 코드 불러오기) (0) | 2021.08.19 |
Gradle 오류 (0) | 2021.08.18 |
[안드로이드 스튜디오/코틀린] 컨텍스트 메뉴 null 관련 오류 (0) | 2021.05.06 |
[안드로이드 스튜디오/코틀린] TabLayout 사용 시 Missing required view ID: ~ 에러 (0) | 2021.05.03 |