我试图在每3秒后运行一次作业调度程序,但它在android noughat上不起作用。这是我的代码。
mJobScheduler = (JobScheduler) getSystemService( Context.JOB_SCHEDULER_SERVICE );
JobInfo.Builder builder = new JobInfo.Builder( 1,
new ComponentName( getPackageName(), JobSchedulerService.class.getName() ) );
builder.setPeriodic(3000);
builder.setRequiresDeviceIdle(false);
builder.setPersisted(true);
JobInfo j=builder.build();
mJobScheduler.schedule(j);
作业调度服务,包含要在作业上执行的代码。
public class JobSchedulerService extends JobService {
private Handler mJobHandler = new Handler( new Handler.Callback() {
@Override
public boolean handleMessage( Message msg ) {
Toast.makeText( getApplicationContext(), "JobService task running", Toast.LENGTH_SHORT ).show();
jobFinished( (JobParameters) msg.obj, false );
return true;
}
} );
@Override
public boolean onStartJob(JobParameters params ) {
// Toast.makeText( getApplicationContext(), "kutta", Toast.LENGTH_SHORT ).show();
mJobHandler.sendMessage( Message.obtain( mJobHandler, 1, params ) );
return true;
}
@Override
public boolean onStopJob( JobParameters params ) {
mJobHandler.removeMessages( 1 );
return false;
}
}
答案 0 :(得分:1)
可安排工作的最短时间为15分钟。这开始于Nougat。如果设置为小于15分钟的值,则作业将使用15分钟。
getMinPeriodMillis() copy&粘贴下面的功能描述
查询定期计划作业允许的最小间隔。在计划作业时尝试声明一个较小的句点将导致作业仍然是定期的,但将在此有效期内运行。