Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Abstract Factory
- Observer Pattern
- a
- PrototypePattern
- 디자인패턴 #
- factory method
- builderPattern
- Singleton
- F
- 코틀린
- designPattern
- 추상팩토리패턴
- 프로토타입 패턴
- 팩토리 메소드
- ㅓ
- 빌터패턴
- 함수형프로그래밍
- El
- Design Pattern
- Functional Programming
- 옵저버 패턴
- Kotlin
- ㅋㅁ
- 추상 팩토리
- r
- 싱글톤
- 디자인패턴
Archives
- Today
- Total
오늘도 더 나은 코드를 작성하였습니까?
Workmanager 기본 사용법 본문
기본적인 종속항목을 추가한다.
Worker 작업의 정의
작업은 Worker 클래스를 사용하여 정의한다.
doWork() 메서드는 WorkManager에서 제공하는 백그라운드 스레드에서 비동기적으로 실행됩니다.
WorkManager에서 실행할 작업을 만들려면 Worker 클래스를 확장하고 doWork() 메서드를 재정의합니다.
class UploadWorker(appContext: Context, workerParams: WorkerParameters):
Worker(appContext, workerParams) {
override fun doWork(): Result {
// Do the work here--in this case, upload the images.
uploadImages()
// Indicate whether the work finished successfully with the Result
return Result.success()
}
}
- context와 작업에 필요한 데이터(workerParms) 파라미터로 받아 클래스를 생성한다.
- doWork()에서 작업을 처리하고, 작업의 결과 상태를 반환한다.
doWork에서 반환된 Result의 성공여부는 실패한 경우 작업의 재시도를 해야 하는지 알려준다.
- Result.success(): 작업이 성공적으로 완료되었습니다.
- Result.failure(): 작업에 실패했습니다.
- Result.retry(): 작업에 실패했으며 재시도 정책에 따라 다른 시점에 시도되어야 합니다.
WorkRequest 작업요청 정의(언제, 어떻게)
작업을 정의하고 나면 실행을 위해 WorkManager 서비스로 예약해야 합니다.
WorkManager에서는 작업을 예약하는 다양한 방법을 제공합니다.
일정한 간격으로 주기적으로 실행되도록 예약하거나 한 번만 실행되도록 예약할 수 있습니다.
어떤 작업 예약 방식을 선택하든 항상 WorkRequest를 사용합니다.
Worker는 작업 단위를 정의하는 반면 WorkRequest(및 서브클래스)는 언제, 어떻게 작업이 실행되어야 하는지 정의합니다.
val uploadWorkRequest: WorkRequest =
OneTimeWorkRequestBuilder<UploadWorker>()
.build()
시스템에 WorkRequest 작업요청 제출
WorkManager
.getInstance(myContext)
.enqueue(uploadWorkRequest)
작업자가 실행되는 정확한 시간은 WorkRequest에 사용된 제약조건과 시스템 최적화에 따라 달라집니다. WorkManager는 이러한 제한사항에 따라 최상의 상태로 작동하도록 설계되었습니다.
'Android Jetpack Architecture > Workmanager' 카테고리의 다른 글
Worker 중간 진행률 및 관찰 (0) | 2021.03.12 |
---|---|
작업 상태 확인후 관리하고 취소까지 (0) | 2021.03.12 |
WorkRequest 만들기. (0) | 2021.03.12 |
Workmanager codelab (0) | 2021.03.12 |
Android Background(백그라운드 작업 해결방법) (0) | 2021.03.10 |