일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 자바
- 스레드
- kotlin강좌
- 병럴프로그래밍
- 알게되는
- android
- 안드로이드스튜디오
- viewmodel
- 회고
- g 단위테스트
- 커스텀상태
- 디자인패턴
- Coroutine
- theming
- Gradle
- 코루틴
- 안드로이드강좌
- 테스트
- 알고리즘
- 안드로이드
- ReactiveProgramming
- Compose
- Kotlin
- 병렬프로그래밍
- k8s
- 책
- 코틀린
- mockito
- 글또
- Rxjava
- Today
- Total
선생님, 개발을 잘하고 싶어요.
안드로이드 서비스 정리 본문
참고자료 : https://developer.android.com/guide/components/services?hl=ko
Service : 백그라운드에서 작업을 수행할 수 있는 어플리케이션 구성요소
(cf. 어플리케이션 구성요소 : Activity, Service, Broadcast Receiver, Content Provider)
시작됨
- startService() 를 호출하여 시작
- onStartCommand() 를 사용하여 구성 요소가 서비스를 시작할 수 있게 허용
바인드됨
- 애플리케이션 구성 요소가 bindService() 를 호출하여 해당 서비스에 바인드되어
구성 요소가 서비스와 상호작용 가능
- onBind() 를 사용하여 바인딩을 허용
onStartCommand()
- 다른 구성 요소가 서비스를 시작하도록 요청하는 경우
onBind()
- 다른 구성 요소가 서비스에 바인드 되고자 하는 경우
- 클라이언트가 서비스와 통신을 주고받기 위해 사용할 인터페이스 제공해야 한다.
onCreate()
- 서비스가 처음 생성되어 일회성 설정 절차를 수행 (onStartCommand, onBind 를 호출하기 전에)
onDestroy()
- 서비스를 소멸시키는 경우
Android 시스템이 서비스를 강제 중단 : 메모리가 부족하여 사용자 포커스를 가진 액티비티를 위해서 (서비스가 foreground에서 실행된다면 거의 중단되지 않음)
포그라운드에서 서비스 실행
- 메모리 부족 시에도 시스템이 중단할 후보로 고려되지 않는 서비스 -> 시스템이 자동으로 죽이지 않는 서비스!
- 상태 표시줄에 대한 알림을 제공하야 한다
- startForeground() 를 호출하여 실행
Notification notification = new Notification(R.drawable.icon, getText(R.string.ticker_text),
System.currentTimeMillis());
Intent notificationIntent = new Intent(this, ExampleActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
notification.setLatestEventInfo(this, getText(R.string.notification_title),
getText(R.string.notification_message), pendingIntent);
startForeground(ONGOING_NOTIFICATION_ID, notification);
'개발 > android 개발' 카테고리의 다른 글
코틀린 데이터바인딩 연결시 (kotlin databinding) (0) | 2018.11.27 |
---|---|
androidx navigation 구현해보자 (0) | 2018.11.23 |
안드로이드 - 죽지않는 블루투스 스캐닝 (2) | 2018.11.22 |
잠금화면 어플리케이션(ProjectM) 개발 초기 개발리스트 (0) | 2018.11.20 |
안드로이드 통화 상태 감지 코드 (0) | 2018.11.20 |