我创建了一个由JobScheduler执行的JobService ... 它非常简单,只需使用Log.Info()在控制台中记录一些东西:
public override bool OnStartJob(JobParameters @params)
{
Log.Info("JOBSERVICE", "FOI");
JobFinished(@params, false);
}
然后我以这种方式安排这项服务:
public void InitService(int status)
{
JobScheduler mJobScheduler = (JobScheduler)cx.GetSystemService(Context.JobSchedulerService);
JobInfo.Builder builder = new JobInfo.Builder(1, new ComponentName(cx, Java.Lang.Class.FromType(typeof(JobSchedulerSyncService))));
builder.SetPeriodic(30000);
builder.SetPersisted(true);
builder.SetRequiresDeviceIdle(true);
if (status == Constants.SYNC_WIFI)
builder.SetRequiredNetworkType(NetworkType.Unmetered);
else if (status == Constants.SYNC_WIFI_3G)
builder.SetRequiredNetworkType(NetworkType.Any);
else
builder.SetRequiredNetworkType(NetworkType.Unmetered);
mJobScheduler.Schedule(builder.Build());
}
问题是,所有参数似乎都不起作用,即使我没有连接到互联网,我的服务也在运行,当我的机器人没有闲置时...
我错过了什么吗? 非常感谢你!
答案 0 :(得分:0)
在Android N中,您必须调用
builder.setPeriodic(interval,flex );//interval>15 minutes ;flex >5 minutes.
让它发挥作用。