相关疑难解决方法(0)

当应用程序不在后台且自动启动选项被禁用时,JobScheduler 在小米中不起作用

我想每天在我的应用程序中运行一个任务,我正在使用 JobScheduler 并且在股票操作系统中运行良好,但是当我尝试在具有自定义 ROM(小米)的手机中运行它时它不起作用,除非我明确启用自动- 安全中应用程序的启动选项。有没有解决方案,其他应用程序如何处理这种情况?

android alarmmanager android-jobscheduler android-workmanager

2
推荐指数
1
解决办法
1552
查看次数

在 Android 8+ 上停止应用程序时会终止定期任务

大家好,我正在尝试在 Android 上实现定期任务,但我被困在某些设备上。

我需要每 15 或 30 分钟在后台运行一次任务。这在 Android 8.0 之前的版本上运行良好。但在 8+ 上,它仅在应用程序处于后台或前台时才有效。当应用程序从最近的应用程序中滑出时,计划任务在真实设备(Ulefone note 7(Android 8.1)、Tecno LC7(Android 10)、itel A56(Abdroid 9))上被终止,但在模拟器(Android 10)上运行良好。我尝试了几种方法:

1.Workmanager(仅当应用程序处于后台或前台时才工作)

构建.gradle

implementation "androidx.work:work-runtime:2.4.0"
Run Code Online (Sandbox Code Playgroud)

主要活动

PeriodicWorkRequest periodicSyncDataWork =
                    new PeriodicWorkRequest.Builder(NotificationWorker.class, 15,TimeUnit.MINUTES)
                            .addTag("TAG_SYNC_DATA")
                            .setBackoffCriteria(BackoffPolicy.LINEAR,PeriodicWorkRequest.MIN_BACKOFF_MILLIS, TimeUnit.MILLISECONDS)
                            .build();
WorkManager.getInstance(this).enqueueUniquePeriodicWork(
                    "NOTIFICATION_WORKER",
                    ExistingPeriodicWorkPolicy.REPLACE, //Existing Periodic Work policy
                     periodicSyncDataWork //work request
            );
Run Code Online (Sandbox Code Playgroud)

通知工作者

public class NotificationWorker extends Worker {
public NotificationWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) 
{
    super(context, workerParams);
}


@NonNull
@Override
public Result doWork() {
    Log.d("MYWORKER", "LLLLLLLLLLL");
    //My code here
    return Result.success();
}
Run Code Online (Sandbox Code Playgroud)

} …

android alarmmanager periodic-task android-jobscheduler android-workmanager

1
推荐指数
1
解决办法
647
查看次数