본문 바로가기
학습 log (이론)/android

'Service'

by abbear25 2019. 12. 14.

서비스

UI없이 백그라운드에서 실행되는 컴포넌트

별도 쓰레드 생성하지 않으면 앱의 메인 쓰레드에서 수행 (프로세스 수행 아님)

*Oreo ('17.08.21) 버전부터  Background 서비스가 계속 실행되지 않도록 제한 추가 (베터리 소모 이슈 해결을 위한)

계속 실행되어야할 경우 Foreground 서비스 사용

*Foreground사용할 경우 startForeground(NOTIFICATION_ID, notificationObj)를 이용하여 사용자에게 알림

 

기능1. 백그라운드 수행작업을 시스템에 알리는 기능

Context.getService() 함수로 서비스를 시작할 경우

 

기능2. 서비스 기능의 일부를 다른 앱에 제공

bindSerivce() 함수로 서비스를 시작할 경우

 

핵심 함수

onCreate(), 최초 실행

receiver 생성 -> filter 등록 -> registerReceiver(receiver, filter) 등록

 

onStartCommand(), 클라이언트가 startService() 호출할 때마다 실행

초기화, intent와 intent.action null체크 -> receiver null체크 -> onCreate()와 동일 실행

실행선언, version 체크 후 필요 기능 삽입

 

onDestroy(), 서비스 종료 시

unregisterReceiver(receiver) 등록된 브로드캐스트 리시버 해제

반응형

'학습 log (이론) > android' 카테고리의 다른 글

ViewPager2  (0) 2021.07.24
Android 패턴  (0) 2019.08.18
'자료형에 대해서' sqlite vs preferences  (0) 2016.11.05
'아이콘' 사이즈 가이드라인 훑어보기  (0) 2016.10.18
'dp' 간단하게 이해하기  (0) 2016.10.18