Android/WorkManager
WorkManager
${Harvey}
2022. 11. 21. 22:06
- WorkManager
- WorkManager는 안드로이드 백그라운드 작업을 처리하는 방법 중 하나이며 Android Jetpack 아키텍처 구성 요소중 하나이다.
- 앱이 종료되거나 기기가 다시 시작되어도 실행 예정인, 지연 가능한 비동기 작업을 쉽게 예약할 수 있도록 해준다.
- 주로 사용자가 나가거나 하더라도 오래걸리는 작업(Calendar 동기화, 이미지 프로세싱)등에 쓰인다.
build.gradle
//WorkManager
implementation("androidx.work:work-runtime-ktx:2.7.1")
MainActivity.kt
// https://developer.android.com/topic/libraries/architecture/workmanager
// https://developer.android.com/codelabs/android-workmanager#0
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
SimpleThread().start()
val workManagerA = OneTimeWorkRequestBuilder<WorkManagerA>().build()
WorkManager.getInstance(this).enqueue(workManagerA)
}
}
class SimpleThread : Thread() {
override fun run() {
super.run()
for(i in 1..10){
Log.d("MainActivity","$i")
sleep(1000)
}
}
}
WorkManagerA
class WorkManagerA(context : Context, workerParameters : WorkerParameters) : Worker(context,workerParameters) {
override fun doWork(): Result {
for(i in 1..10){
sleep(1000)
Log.d("WorkManagerA",i.toString())
}
return Result.success()
}
}
결과 : 처음엔 로그에 둘다 찍힌다.

앱 종료시 WorkManager의 로그만 찍힌다.
