Android JobScheduler - setRequiredNetworkType 不工作
Android JobScheduler - setRequiredNetworkType not working
我试图用 1 个简单的约束条件制作 JobScheduler:setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
JobScheduler jobScheduler = (JobScheduler) mContext.getSystemService(Context.JOB_SCHEDULER_SERVICE);
ComponentName componentName = new ComponentName(mContext.getPackageName(), JobOneService.class.getName());
JobInfo jobInfo = new JobInfo.Builder(1, componentName)
.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
.setPersisted(true)
.build();
jobScheduler.schedule(jobInfo);
JobOneService 扩展了 JobService class。
我试着顺便模拟一下情况:关闭然后打开wifi网络。但是 onStartJob() 方法并不总是被调用(间歇调用)。
任何人都可以帮我解释一下为什么在我打开 wifi 连接后 onStartJob() 并不总是被调用?谢谢
在文档中,他们提到 setRequiredNetworkType 用于
Calling this method defines network as a strict requirement for your job. If the network requested is not available your job will never run.
所以它检查网络连接。如果网络已连接,那么您的工作将 运行 否则您的工作将不会 运行。如果你希望当网络再次连接时你的工作应该 运行 那么你必须为此编写你的逻辑。最好使用 WorkManager,因为 WorkManager 处理得当。
我试图用 1 个简单的约束条件制作 JobScheduler:setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
JobScheduler jobScheduler = (JobScheduler) mContext.getSystemService(Context.JOB_SCHEDULER_SERVICE);
ComponentName componentName = new ComponentName(mContext.getPackageName(), JobOneService.class.getName());
JobInfo jobInfo = new JobInfo.Builder(1, componentName)
.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
.setPersisted(true)
.build();
jobScheduler.schedule(jobInfo);
JobOneService 扩展了 JobService class。 我试着顺便模拟一下情况:关闭然后打开wifi网络。但是 onStartJob() 方法并不总是被调用(间歇调用)。
任何人都可以帮我解释一下为什么在我打开 wifi 连接后 onStartJob() 并不总是被调用?谢谢
在文档中,他们提到 setRequiredNetworkType 用于
Calling this method defines network as a strict requirement for your job. If the network requested is not available your job will never run.
所以它检查网络连接。如果网络已连接,那么您的工作将 运行 否则您的工作将不会 运行。如果你希望当网络再次连接时你的工作应该 运行 那么你必须为此编写你的逻辑。最好使用 WorkManager,因为 WorkManager 处理得当。