4.2
Android Jetpack WorkManager 任务调度实战
在安卓应用开发中,处理后台任务调度是常见需求,Android Jetpack 中的 WorkManager 提供了强大且灵活的解决方案,可兼容低至 Android 5.0(API 21)的系统。
- 简单一次性任务
假设我们需要在应用启动后延迟执行文件清理任务,首先定义一个继承自 Worker 的类:
import android.content.Context;
import androidx.work.Worker;
import androidx.work.WorkerParameters;
public class CleanupWorker extends Worker {
public CleanupWorker(@NonNull Context context, @NonNull WorkerParameters params) {
super(context, params);
}
@NonNull
@Override
public Result doWork() {
// 执行文件清理逻辑
// 例如删除缓存文件
return Result.success();
}
}
在 Activity 中使用 WorkManager 调度任务:
import androidx.work.OneTimeWorkRequest;
import androidx.work.WorkManager;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
OneTimeWorkRequest cleanupRequest = new OneTimeWorkRequest.Builder(CleanupWorker.class)
.setInitialDelay(5, TimeUnit.MINUTES) // 延迟5分钟执行
.build();
WorkManager.getInstance(this).enqueue(cleanupRequest);
}
}
- 周期性任务
若要实现周期性的日志上传任务,可这样配置:
PeriodicWorkRequest logUploadRequest = new PeriodicWorkRequest.Builder(LogUploadWorker.class, 1, TimeUnit.DAYS)
.build();
WorkManager.getInstance(this).enqueue(logUploadRequest);
通过 WorkManager,开发者能轻松管理后台任务,保证任务的可靠性与高效执行。
浙公网安备 33010602011771号