我使用PeriodicWorkRequest每15分钟为我执行一次任务.我想检查一下这个定期工作请求是否已经预定过.如果没有,请安排它.
if (!PreviouslyScheduled) {
PeriodicWorkRequest dataupdate = new PeriodicWorkRequest.Builder( DataUpdateWorker.class , 15 , TimeUnit.MINUTES).build();
WorkManager.getInstance().enqueue(dataupdate);
}
Run Code Online (Sandbox Code Playgroud)
以前当我使用JobScheduler执行任务时,我曾经使用过
public static boolean isJobServiceScheduled(Context context, int JOB_ID ) {
JobScheduler scheduler = (JobScheduler) context.getSystemService( Context.JOB_SCHEDULER_SERVICE ) ;
boolean hasBeenScheduled = false ;
for ( JobInfo jobInfo : scheduler.getAllPendingJobs() ) {
if ( jobInfo.getId() == JOB_ID ) {
hasBeenScheduled = true ;
break ;
}
}
return hasBeenScheduled ;
}
Run Code Online (Sandbox Code Playgroud)
需要帮助构建用于工作请求的类似模块以帮助查找计划/活动工作请求.
请不要将其标记为重复.
当错误代码为-4时,我确实根据其他可用答案进行了更改.现在它显示错误代码:-1.
请给我一些指导.
这是我的studio.exe.vmoptions文件
server
-Xms256m
-Xmx512m
-XX:MaxPermSize=250m
-XX:ReservedCodeCacheSize=240m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-da
-Djna.nosys=true
-Djna.boot.library.path=
-Djna.debug_load=true
-Djna.debug_load.jna=true
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-XX:+HeapDumpOnOutOfMemoryError
-Didea.paths.selector=AndroidStudio2.1
-Didea.platform.prefix=AndroidStudio
Run Code Online (Sandbox Code Playgroud)