티스토리 뷰

sample code

 

// MainActivity

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        SimpleThread().start()

        //WorkManagerA
//        val workManagerA = OneTimeWorkRequestBuilder<WorkManagerA>().build()   //객체 생성
//        WorkManager.getInstance(this).enqueue(workManagerA)

        val myData : Data = workDataOf(
            "a" to 10,
            "b" to 20
        )

        val workManagerB = OneTimeWorkRequestBuilder<WorkManagerB>().setInputData(myData).build()
        WorkManager.getInstance(this).enqueue(workManagerB)

        WorkManager.getInstance(this).getWorkInfoByIdLiveData(workManagerB.id)
            .observe(this, Observer { info ->
                if(info != null && info.state.isFinished){
                   val result =  info.outputData.getInt("result", 10000)
                    Log.d("MainActivity", result.toString())
                }
            })

    }
}

 

 

// WorkManagerB

class WorkManagerB (context:Context, workerParameters: WorkerParameters)
    : Worker(context, workerParameters){
    override fun doWork(): Result {


        val a = inputData.getInt("a",1000)
        val b =  inputData.getInt("b",2000)

        Log.d("workManagerB", "$a  ")
        Log.d("workManagerB", "$b  ")


        val outputData : Data = workDataOf("result" to 10)
        return Result.success(outputData)


    }
}

 

'안드로이드' 카테고리의 다른 글

android ) WorkManager Chaining  (0) 2023.08.07
call vs Response 차이  (0) 2023.07.31
withContext, async 차이  (0) 2023.03.29
MVVM 디자인패턴  (0) 2023.03.29
어플리케이션 클래스  (0) 2022.04.06
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함