1

根据我的理解,下面的代码位应该设置一个只有在存在网络连接时才会运行的定期作业。这意味着尽管是周期性的,除非满足所需条件,否则它不会运行。setRequiredNetworkType不适用于定期任务?

但这并不奏效。无论是否有网络,它总是在这段时间后运行。难道我做错了什么 ?

JobScheduler mJobScheduler = (JobScheduler) getSystemService(Context.JOB_SCHEDULER_SERVICE); 
     JobInfo.Builder builder = null; 
     builder = new JobInfo.Builder(1, new ComponentName(getPackageName(), 
       MyJobService.class.getName())) 
       .setPersisted(true) 
       .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY); 
       .setPeriodic(10 * 1000); 

回答

0

setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)运行任务,不管网络是否存在或不存在。

根据文档

ANY - 网络没有连接。

尝试更换到setRequiredNetworkType(JobInfo.NetworkType.CONNECTED)

+0

'NETWORK_TYPE_ANY'的文件说: “这项工作需要网络连接”。 'JobInfo.NetworkType.CONNECTED'根本不存在。 – user2137020

相关问题