2016-10-20 7 views
3

Я пытаюсь реализовать JobScheduler в своем приложении, но у меня есть проблема, которую я не могу понять.Android JobScheduler: JobService с отключением сети, даже если у моего устройства нет сетевого подключения.

Целью является запуск службы, когда на моем устройстве доступно подключение к Интернету с интервалом в 10 секунд.

Так я использую JobScheduler таким образом:

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


    if (mJobScheduler.schedule(builder.build()) <= 0) { 
     Log.e("gch", "can't Schedule job for MyJobService"); 
    } else { 
     Log.d("gch", "Schedule job for MyJobService"); 
    } 

И мой JobService:

public class MyJobService extends android.app.job.JobService { 
    public MyJobService() { 
    } 

    @Override 
    public boolean onStartJob(JobParameters jobParameters) { 
     Log.d("gch", "onStartJob"); 
     return false; 
    } 

    @Override 
    public boolean onStopJob(JobParameters jobParameters) { 
     Log.d("gch", "onStartonStopJob"); 
     return true; 
    } 

} 

Конечно, я добавил android:permission="android.permission.BIND_JOB_SERVICE"

Если я правильно понимаю, мой JobService должен быть выполняется только в том случае, если у моего устройства есть сеть и не более одного раза в течение 10 секунд.

Но на моем устройстве у меня нет подключения к интернету (SIM-карта не вставлена ​​и WIFI не в состоянии) НО моя работа выполняется каждые 10 секунд .. Кажется, NETWORK_TYPE_ANY игнорируется. Такая же проблема с NETWORK_TYPE_UNMETERED.

Кто-то уже сталкивается с этой проблемой?

Большое спасибо.

+0

Возможный дубликат [API android L [API-интерфейса для рабочих групп] (http://stackoverflow.com/questions/27208776/jobscheduler-api-android-l) – Henning

ответ

0

Посмотрите на эту тему: Jobscheduler API android L

и этот отчет об ошибке: https://code.google.com/p/android/issues/detail?id=81265

время рассматривается как крайний срок, когда этот срок будет достигнуто задание вызовет хотя ваши другие ограничения Арен» т. Я не знаю, является ли это ошибкой или функцией.