我使用Evernote的Android Job library。版本 1.2.0。
对于日常工作,我像这样使用DailyJob(https://evernote.github.io/android-job/javadoc/com/evernote/android/job/DailyJob.html):
public class DailySyncJob extends DailyJob {
public static final String TAG = "DailySyncJob";
public static void schedule() {
if (!JobManager.instance().getAllJobRequestsForTag(TAG).isEmpty()) {
// job already scheduled, nothing to do
return;
}
JobRequest.Builder builder = new JobRequest.Builder(TAG).setRequiredNetworkType(JobRequest.NetworkType.UNMETERED);
// run job between 11pm and 6am
DailyJob.schedule(builder, TimeUnit.HOURS.toMillis(23), TimeUnit.HOURS.toMillis(6));
}
@NonNull
@Override
protected DailyJobResult onRunDailyJob(Params params) {
// do something
return DailyJobResult.SUCCESS;
}
}
onRunDailyJob
在 Create() 上启动应用程序类吗?
我是库的主要开发人员。如果你的进程没有运行,那么是的,你的Appliction#onCreate()首先被调用。这不是图书馆特有的。Android以这种方式工作,如果你的进程已经死了。