2017-05-15 24 views
0

我沒有找到關於此主題的任何內容,但我很好奇你的建議或「最佳實踐」是關於設置規則來安排任務?例如,如果我必須安排同步作業,它應該永遠存在,只要應用程序運行,將在什麼地方evernote android-job:什麼時候設置時間表規則?

new JobRequest.Builder("...").. 
    .build() 
    .schedule() 

叫?

謝謝

回答

1

您應該創建JobCreator這將實例化您的作業類是這樣的:

public class MyJobCreator implements JobCreator { 

    @Override 
    public Job create(String tag) { 
     if (MyJob.TAG.equals(tag)) { 
      return new MyJob(); 
     } 

     return null; 
    } 
} 

而且在Application.onCreate()初始化:

JobManager.create(this).addJobCreator(new MyJobCreator()); 
MyJob.scheduleJob(); 

MyJob可能看起來像這樣:

public class MyJob extends Job { 

    public static final String TAG = "my_job_tag"; 

    @Override 
    @NonNull 
    protected Result onRunJob(Params params) { 
     Intent i = new Intent(getContext(), MyService.class); 
     getContext().startService(i); 
     return Result.SUCCESS; 
    } 

    public static void scheduleJob() { 
     new JobRequest.Builder(MyJob.TAG) 
       .setPeriodic(60_000L) // 1 minute 
       .setRequiredNetworkType(JobRequest.NetworkType.ANY) 
       .setPersisted(true) 
       .setUpdateCurrent(true) 
       .setRequirementsEnforced(true) 
       .build() 
       .schedule(); 
    } 
} 
+0

1分鐘會拋出異常。你可能希望至少15分鐘。 – NinjaCoder

相關問題