0
我沒有找到關於此主題的任何內容,但我很好奇你的建議或「最佳實踐」是關於時設置規則來安排任務?例如,如果我必須安排同步作業,它應該永遠存在,只要應用程序運行,將在什麼地方evernote android-job:什麼時候設置時間表規則?
new JobRequest.Builder("...")..
.build()
.schedule()
叫?
謝謝
我沒有找到關於此主題的任何內容,但我很好奇你的建議或「最佳實踐」是關於時設置規則來安排任務?例如,如果我必須安排同步作業,它應該永遠存在,只要應用程序運行,將在什麼地方evernote android-job:什麼時候設置時間表規則?
new JobRequest.Builder("...")..
.build()
.schedule()
叫?
謝謝
您應該創建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();
}
}
1分鐘會拋出異常。你可能希望至少15分鐘。 – NinjaCoder