【发布时间】:2017-05-08 19:51:17
【问题描述】:
我创建了一个由 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());
}
问题是,所需的参数似乎都不起作用,即使我没有连接到互联网,我的服务也在运行,当我的 android 不是空闲时也没有......
我错过了什么吗? 非常感谢!
【问题讨论】:
-
我不太明白你的问题,但你可以查看官方演示Job Scheduler,看看你是否遗漏了什么。
标签: c# android xamarin android-jobscheduler