4.2

Android Jetpack WorkManager 任务调度实战
在安卓应用开发中,处理后台任务调度是常见需求,Android Jetpack 中的 WorkManager 提供了强大且灵活的解决方案,可兼容低至 Android 5.0(API 21)的系统。​

  1. 简单一次性任务​
    假设我们需要在应用启动后延迟执行文件清理任务,首先定义一个继承自 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);​
    }​
    }​
  2. 周期性任务​
    若要实现周期性的日志上传任务,可这样配置:​

    PeriodicWorkRequest logUploadRequest = new PeriodicWorkRequest.Builder(LogUploadWorker.class, 1, TimeUnit.DAYS)​
    .build();​
    WorkManager.getInstance(this).enqueue(logUploadRequest);​

    通过 WorkManager,开发者能轻松管理后台任务,保证任务的可靠性与高效执行。
posted @ 2025-04-02 21:01  Echosssss  阅读(19)  评论(0)    收藏  举报