如何在 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 窗口中显示输出。
日志输出:
应用程序输出: