일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- function
- Swift
- ReactNative
- Interface
- Foreign Key
- vuex
- Kotlin
- elementAt
- 생명주기
- CLASS
- docker
- union
- list
- animation
- collection
- recyclerview
- ConstraintLayout
- mongoose
- AWS
- map
- Generic
- Service
- docker-compose
- enum
- react native
- LiveData
- class component
- lifecycle
- MINUS
- Filter
- Today
- Total
개발 일기
Service 본문
안드로이드에서 서비스는 4대 컴포넌트중에 하나로써 백그라운드에서 오래 실행되는 작업을 수행할 수 있는
요소입니다.
세가지 유형 :)
- 포그라운드
- 백그라운드
- 바인드
포그라운드 :)
포그라운드 서비스는 보통 사용자에게 잘 보이는 작업들을 수행합니다. 따라서 알림을 표시를 해야 하고 , 사용자가 앱과 상호작용을 하지 않을 때도 계속 실행됩니다.
백그라운드 :)
백그라운드 서비스는 사용자에게 보이지 않는 작업을 수행합니다.
앱이 Android 8.0(API 레벨 26) 이상으로 존재한다면 앱이 포그라운드에 있지 않을 때 시스템에서는 백그라운드 제한이 적용됩니다.
바인드 :)
bindService()를 호출하여 해당 서비스에 바인딩되면 서비스가 바인딩됩니다.
바인딩된 서비스는 클라이언트-서버 인터페이스를 제공하여 activity or fragment 데이터를 주고 받을 수도 있고 프로세스간의 통신에도 사용이됩니다.
기본 사항 :)
- onStartCommand()
- onBind()
- onCreate()
- onDestroy()
activity가 서비스를 시작하기 위해서 startService or startForegroundService라는 호출을 할때 onStartCommand가 호출이 됩니다.
onBind :)
바인딩을 하고자 할 때 클라이언트와 서비스와 통신을 주고 받기 위한 인터페이스를 제공해야합니다.
허용을 않으려면 null을 return 하시면 됩니다.
onCreate :)
서비스가 처음 생성이 되었을 때 ( onStartCommand or onBind() 호출 전) 일회성으로 설정 절차를 수행합니다.
이미 서비스가 실행이 된 경우 호출되지 않습니다.
onDestroy :)
서비스가 더 이상 사용되지 않고 소멸시킬 때 호출이 됩니다.
onTaskonTaskRemoved :)
Task가 종료되는 시점을 감지합니다.
androidManifest에서 android:stopWithTask 속성을 false로 해주셔야 합니다!.
서비스 구현 :)
매니페스트에서 서비스 선언 :)
<manifest ... >
...
<application ... >
<service android:name=".ExampleService" />
...
</application>
</manifest>
service manifest 구성요소는 링크를 달아 드리겠습니다.
서비스 생성 :)
Intent(this, ExampleService::class.java).also { intent ->
startService(intent)
}
서비스 종료 :)
stopSelf() or stopService()
서비스 확장 :)
'Client > 안드로이드' 카테고리의 다른 글
Rxjava Subject (0) | 2020.03.26 |
---|---|
Broadcast Receiver ? (0) | 2020.03.26 |
paging library ? (페이징 라이브러리) (0) | 2020.03.24 |
Databinding ? (0) | 2020.03.21 |
Android Manifest ? (0) | 2020.03.21 |