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

相關問題