1.在AndroidManifest.xml 添加
<provider
android:name="androidx.startup.InitializationProvider"
android:authorities="${applicationId}.androidx-startup"
android:directBootAware="false"
android:exported="false"
android:multiprocess="true"
tools:targetApi="n"
tools:node="merge">
<meta-data
android:name="androidx.work.WorkManagerInitializer"
android:value="androidx.startup"
tools:node="remove" />
</provider>
2.在gradle中添加 依赖库
implementation "androidx.work:work-runtime:2.6.0"
3.创建一个worker
public class AlarmWorker extends Worker {
public AlarmWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) {
super(context, workerParams);
}
@NonNull
@Override
public Result doWork() {
Timber.e("doWork 123");
return Result.success();
}
}
4.application 实现 Configuration.Provider
public class xxxApplication extends Application implements Configuration.Provider {
@NonNull
@Override
public Configuration getWorkManagerConfiguration() {
return new Configuration.Builder()
.setMinimumLoggingLevel(Log.VERBOSE)
.build();
}
}
5. 添加定时任务。
// 单次任务 OneTimeWorkRequest workRequest= new OneTimeWorkRequest.Builder(AlarmWorker.class).build();
//周期任务
PeriodicWorkRequest workRequest= new PeriodicWorkRequest.Builder(AlarmWorker.class,MIN_PERIODIC_INTERVAL_MILLIS,TimeUnit.MILLISECONDS).build();
WorkManager.getInstance(getApplication()).enqueue(workRequest);