2017-05-08 36 views
0

我創建了一個JobService通過的jobscheduler ... 執行它相當簡單,只需登錄東西在控制檯Log.Info()不工作時:SetRequired ...調度JobService

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()); 
    } 

的問題是,沒有必要的參數似乎工作,當我沒有連接到Internet我的服務甚至運行,無論是當我的android不是空閒的...

我錯過了什麼嗎? 非常感謝!

+0

我不太瞭解您的問題,但您可以查看官方演示[Job Scheduler](https://github.com/xamarin/monodroid-samples/tree/master/android5.0/JobScheduler)以查看如果你錯過了什麼。 –

回答

0

在Android中N,你就必須調用

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

使其工作。