📜  如何在 Android 中集成工作管理器?

📅  最后修改于: 2022-05-13 01:55:40.658000             🧑  作者: Mango

如何在 Android 中集成工作管理器?

在我们的日常生活中,我们在手机上使用闹钟、任务提醒等应用程序。早期运行后台任务在 Android 中是一项非常艰巨的任务,但现在在Work Manager的帮助下,我们可以轻松地安排我们的任务。 Work Manager 是一个 Android Jetpack 库。它允许应用程序在后台执行操作,即使在应用程序退出或设备重新启动时也是如此。在本文中,我们将学习如何将工作管理器集成到您的 Android 应用程序中,从而使我们的工作轻松安排任务和提醒。

分步实施

第 1 步:创建一个新项目

要在 Android Studio 中创建新项目,请参阅如何在 Android Studio 中创建/启动新项目。请注意,选择Kotlin作为编程语言。

第 2 步:在成绩文件中添加依赖项。

导航到Gradle Scripts > build.gradle(Module: app)并添加以下代码。

implementation("androidx.work:work-runtime-ktx:2.7.0")

第 3 步:创建 Worker 类

创建一个类,然后在该类上扩展 Worker Class 并覆盖其doWork()方法。无论您想在后台执行什么任务,都将其写入 doWork() 方法。它负责执行该任务。

Kotlin
import android.content.Context
import android.util.Log
import androidx.work.Worker
import androidx.work.WorkerParameters
  
class WorkerClass(appContext: Context, workerParams: WorkerParameters): Worker(appContext, workerParams) {
  
    override fun doWork(): Result {
  
        // Enter work details to perform on background
          // Log.d is used to for debugging purposes
        Log.d("WorkerClass","It's Working")
  
        // Task result
        return Result.success()
    }
}


Kotlin
package com.mrtechy.gfg_workmanager
  
import WorkerClass
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.work.OneTimeWorkRequestBuilder
import androidx.work.WorkManager
import androidx.work.WorkRequest
  
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Created a Work Request
        val uploadWorkRequest: WorkRequest = OneTimeWorkRequestBuilder().build()
  
        // Submit the WorkRequest to the system
        WorkManager.getInstance(this).enqueue(uploadWorkRequest)
  
    }
}


从 doWork() 返回的 Result 通知 WorkManager 工作是否成功,如果失败,是否应该重试工作。它们是Result.success()、Result.failure()、Result.retry()。

第 4 步:使用 MainActivity.kt 文件

在我们的 MainActivity 文件中,我们将创建一个工作请求。通过替换类和 Activity 的名称,将以下代码添加到您的文件中。

科特林

package com.mrtechy.gfg_workmanager
  
import WorkerClass
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.work.OneTimeWorkRequestBuilder
import androidx.work.WorkManager
import androidx.work.WorkRequest
  
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Created a Work Request
        val uploadWorkRequest: WorkRequest = OneTimeWorkRequestBuilder().build()
  
        // Submit the WorkRequest to the system
        WorkManager.getInstance(this).enqueue(uploadWorkRequest)
  
    }
}

输出:我们使用Log.d在 logcat 窗口中显示输出。

日志输出:

日志猫

应用程序输出:

输出