【问题标题】:SetRequired... Not working when scheduling a JobServiceSetRequired... 调度 JobService 时不起作用
【发布时间】: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


【解决方案1】:

在 Android N 中,您必须调用

 builder.setPeriodic(interval,flex );//interval>15 minutes ;flex >5 minutes.

让它工作。

【讨论】:

    猜你喜欢
    • 2018-03-13
    • 1970-01-01
    • 2018-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-13
    • 2023-03-22
    • 2017-05-25
    相关资源
    最近更新 更多