728x90
package com.anushka.workmanagerdemo1
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Toast
import androidx.lifecycle.Observer
import androidx.work.*
import kotlinx.android.synthetic.main.activity_main.*
import java.util.concurrent.TimeUnit
class MainActivity : AppCompatActivity() {
companion object{
const val KEY_COUNT_VALUE = "key_count"
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button.setOnClickListener {
//setOneTimeWorkRequest()
setPeriodicWorkRequest()
}
}
private fun setPeriodicWorkRequest(){
val periodicWorkRequest = PeriodicWorkRequest
.Builder(DownloadingWorker::class.java,16,TimeUnit.MINUTES)
.build()
WorkManager.getInstance(applicationContext).enqueue(periodicWorkRequest)
}
}
Worker
package com.anushka.workmanagerdemo1
import android.content.Context
import android.util.Log
import androidx.work.Data
import androidx.work.Worker
import androidx.work.WorkerParameters
import java.lang.Exception
import java.text.SimpleDateFormat
import java.util.*
class UploadWorker(context: Context,params:WorkerParameters) : Worker(context,params) {
companion object{
const val KEY_WORKER = "key_worker"
}
override fun doWork(): Result {
try {
val count = inputData.getInt(MainActivity.KEY_COUNT_VALUE,0)
for (i in 0 until count) {
Log.i("MYTAG", "Uploading $i")
}
val time = SimpleDateFormat("dd/M/yyyy hh:mm:ss")
val currentDate = time.format(Date())
val outPutData = Data.Builder()
.putString(KEY_WORKER,currentDate)
.build()
return Result.success(outPutData)
} catch (e:Exception){
return Result.failure()
}
}
}
728x90
'안드로이드 > Wrok Manager' 카테고리의 다른 글
WorkManger Chaining Works (0) | 2022.12.05 |
---|---|
WorkManager Worker의 Input, Output data 설정 (0) | 2022.12.05 |
안드로이드 WokrManger 실행 조건 설정(Constraints) (0) | 2022.12.01 |
안드로이드 WorkManager Worker 상태 업데이트 (0) | 2022.12.01 |