728x90
Worker
import android.content.Context
import android.util.Log
import androidx.work.Worker
import androidx.work.WorkerParameters
import java.lang.Exception
class UploadWorker(context: Context,params:WorkerParameters) : Worker(context,params) {
override fun doWork(): Result {
try {
for (i in 0..600000) {
Log.i("MYTAG", "Uploading $i")
}
return Result.success()
} catch (e:Exception){
return Result.failure()
}
}
}
MainActivity
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.lifecycle.Observer
import androidx.work.Constraints
import androidx.work.NetworkType
import androidx.work.OneTimeWorkRequest
import androidx.work.WorkManager
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button.setOnClickListener {
setOneTimeWorkRequest()
}
}
private fun setOneTimeWorkRequest() {
val workManager = WorkManager.getInstance(applicationContext)
val uploadRequest = OneTimeWorkRequest.Builder(UploadWorker::class.java)
.build()
workManager.enqueue(uploadRequest)
workManager.getWorkInfoByIdLiveData(uploadRequest.id)
.observe(this, Observer {
textView.text = it.state.name
})
}
}
728x90
'안드로이드 > Wrok Manager' 카테고리의 다른 글
WorkManger Worker 주기적 반복 실행 (0) | 2022.12.06 |
---|---|
WorkManger Chaining Works (0) | 2022.12.05 |
WorkManager Worker의 Input, Output data 설정 (0) | 2022.12.05 |
안드로이드 WokrManger 실행 조건 설정(Constraints) (0) | 2022.12.01 |