在Android中杀死我的应用程序后Job Scheduler不工作?

问题描述 投票:1回答:3

我已经使用计时器在作业调度程序内以5秒的间隔调用方法。但是作业调度程序仅在应用程序运行阶段运行,如果我杀死应用程序,则作业调度程序无法运行。我杀了我的应用程序后如何运行作业调度程序?

我的代码是:

package com.deemsysinc.firebaseandroid;

import android.app.job.JobParameters;
import android.app.job.JobService;
import android.os.PersistableBundle;
import android.util.Log;

import java.util.Timer;
import java.util.TimerTask;

public class MyJobService extends JobService {
    private static final String TAG=MyJobService.class.getSimpleName();
    Timer timer;
    TimerTask timerTask;
    @Override
    public boolean onStartJob(JobParameters jobParameters) {
        final PersistableBundle persistableBundle=jobParameters.getExtras();
        timer=new Timer();
        timerTask=new TimerTask() {
            @Override
            public void run() {
                MethodCalling();
                Log.d("TheJobStart",persistableBundle.getString("Title"));
            }
        };
        timer.schedule(timerTask,0,15000);
        jobFinished(jobParameters,false);
        return true;
    }

    @Override
    public boolean onStopJob(JobParameters jobParameters) {
        Log.d("TheJobStart","JobCompleted");
        return true;
    }
}
android android-service android-jobscheduler
3个回答
1
投票

<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> I面临同样的问题,但我找到了一个解决方案,只需在清单文件中添加这两行。


0
投票

您尚未提供任何代码。你是做什么以及如何做,但你应该使用JobScheduler而不是WorkManager。它也是谷歌推荐的。即使您的应用程序被杀死,也会执行在WorkManager中安排的进程。

来自官方文件:

WorkManager API可以轻松指定可延迟的异步任务以及何时运行它们。这些API允许您创建任务并将其交给WorkManager立即运行或在适当的时间运行。例如,应用可能需要不时从网络下载新资源。使用这些类,您可以设置任务,为其运行选择适当的环境(例如“仅在设备正在充电和在线”时),并将其交给WorkManager以在满足条件时运行。即使您的应用程序强制退出或设备重新启动,任务仍可保证运行。

如果您的应用程序未运行,WorkManager会选择适当的方式来安排后台任务 - 根据设备API级别和包含的依赖项,WorkManager可能会使用JobSchedulerFirebase JobDispatcherAlarmManager。您无需编写设备逻辑来确定设备具有哪些功能并选择适当的API;相反,您可以将您的任务交给WorkManager,让它选择最佳选项。

你招募qazxsw poi,请检查qazxsw poi如何使用Recurring tasks进行重复任务。


0
投票

即使您实现了WorkManager,也无法在自定义ROM中运行后台任务,其中自动启动设置已经提供给用户,如Redmi。有关更多信息,请查看here

© www.soinside.com 2019 - 2024. All rights reserved.