在WorkManager中需要上下文

Rez*_*adi 3 android android-jetpack android-workmanager

我正在使用WorkManager 1.0.0-alpha05我的应用程序可能运行或未运行的功能来安排某些任务.我要做的工作需要context如何将上下文传递给它?

class CompressWorker : Worker() {

    override fun doWork(): Result {
        //need context here
        Log.e("alz", "work manager runs")
        return Result.SUCCESS
    }
 }
Run Code Online (Sandbox Code Playgroud)

这是我如何初始化工作.

val oneTimeWork = OneTimeWorkRequestBuilder<CompressWorker>()
        .setInitialDelay(15, TimeUnit.MINUTES)
        .build()

WorkManager.getInstance().enqueue(oneTimeWork)
Run Code Online (Sandbox Code Playgroud)

pio*_*hen 14

这取决于Context你需要什么样的.根据的文档Worker,您可以getApplicationContext()直接从Worker类中调用方法来获取Context整个应用程序,这在这个用例中应该是合理的.

  • 您可以从 Worker 类的构造函数获取上下文:https://developer.android.com/reference/androidx/work/Worker.html#Worker(android.content.Context,%20androidx.work.WorkerParameters) (2认同)