小编Mad*_*rma的帖子

WorkManager不重复PeriodicWorkRequest

我正在创建一个Android应用程序以在后台运行我的代码。我很清楚Android Oreo为后台服务引入的限制,这就是为什么我使用WorkManager API安排执行任务的原因。我正在使用Android API 24(Nougat)在Mi Max设备上测试我的代码,并且还手动启用了自动启动,以便MIUI允许该应用程序在后台运行,但是问题是,WorkManager会在应用程序首次启动时触发,在那之后,它不起作用。以下是我用于定期工作请求和工作本身的代码。

PeriodicWorkRequest调用:

PeriodicWorkRequest work = new PeriodicWorkRequest.Builder(ClassExtendingWorker.class, 15, TimeUnit.MINUTES)
            .setConstraints(Constraints.NONE)
            .build();
WorkManager.getInstance().enqueue(work);
Run Code Online (Sandbox Code Playgroud)

ClassExtendingWorker:

public Result doWork() {
    /*--- SHOWING NOTIFICATION AS AN EXAMPLE TASK TO BE EXECUTED ---*/
    NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(getApplicationContext(), "")
            .setSmallIcon(R.drawable.common_google_signin_btn_icon_light)
            .setContentTitle("TestApp")
            .setContentText("Code executed")
            .setPriority(NotificationCompat.PRIORITY_DEFAULT);
    NotificationManagerCompat notificationManager = NotificationManagerCompat.from(getApplicationContext());
    notificationManager.notify(1234, mBuilder.build());

    return Result.SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)

android miui android-workmanager

3
推荐指数
3
解决办法
7671
查看次数

标签 统计

android ×1

android-workmanager ×1

miui ×1