设备启动时在JobService中首次调用onStartJob

问题描述

我正在使用JobScheduler安排某些工作在一天之内一次。以下是我的实现,但问题是,我的JobService的onStartJob()在调度作业或在取消后重新调度时首次调用。我的设备的android版本是9。

//MyJobService
public class MyJobSchedulerService extends JobService {

private static final String TAG = MyJobSchedulerService.class.getSimpleName();

@Override
public boolean onStartJob(JobParameters params) {
  Log.i(TAG,"onstart");//calling single time either scheduling first time or scheduling after cancel
  jobFinished(params,true);
  //my work
  return true;
}

@Override
public boolean onStopJob(JobParameters params) {
 Log.i(TAG,"onstop");
 return false;
}
}

//MyBootReceiver
public class MyBootReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context,Intent intent) {
  String intentAction = intent.getAction();
  if (intentAction != null) {
      ComponentName componentName = new ComponentName(context,MyJobSchedulerService.class);
      JobInfo.Builder builder = new JobInfo.Builder(101,componentName);
      builder.setPeriodic(TimeUnit.DAYS.toMillis(1));
      builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY);
      builder.setPersisted(true);
      JobScheduler mJobScheduler = (JobScheduler) context.getSystemService(JOB_SCHEDULER_SERVICE);
      JobInfo pendingJobInfo = mJobScheduler.getPendingJob(101);
      if (intentAction.equals(Intent.ACTION_BOOT_COMPLETED)) {
          if (pendingJobInfo == null)
              mJobScheduler.schedule(builder.build());
          Log.i("MyBootReceiver"," pendingJobInfo "+(pendingJobInfo == null));
      } 
  }

 }
 }

//Manifest
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<service android:name=".MyJobSchedulerService"
             android:permission="android.permission.BIND_JOB_SERVICE"/>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...