Android Jobscheduler - Как загрузить большие ноты изображений с помощью Job Scheduler - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть служба заданий, которая берет URL-адрес изображения и загружает изображение в папку. Я хочу знать, как я могу создать планировщик заданий, он установит задания для меня, чтобы загрузить все 400 изображений. Я должен загрузить около 400 изображений из разных 400 http URL. Это та же самая работа, которая будет запускаться одна за другой в цикле for.

ниже приведен код, который я написал

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
   JobScheduler jobScheduler = null;
   if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
    jobScheduler = context.getSystemService(JobScheduler.class);
   }
   jobScheduler.cancelAll();

   int i = 1;

   for (MyPojo pojo: complexObject.getTasks()) {
    if (i < 100) {
     PersistableBundle persistableBundle = new PersistableBundle();
     persistableBundle.putInt("id", pojo.getId(); 
     persistableBundle.putString("url", pojo.getImageURL()); 
     persistableBundle.putString("parent_directory", "Mydirectory/."); 
     ComponentName serviceComponent = new ComponentName(context, TestJobService.class);
     JobInfo.Builder builder = new JobInfo.Builder(12345, serviceComponent);
     builder.setExtras(persistableBundle);
     builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY);
     builder.setOverrideDeadline(10 * 1000); // maximum delay
     i++;

     Log.d("i count is ", " " + i);
    }

Это не работает и не вызывает какой-либо запрос.

1 Ответ

0 голосов
/ 08 ноября 2018

Добавьте следующую строку в последнем отчете внутри цикла for jobScheduler.schedule (builder.build ());

обновленный код:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
   JobScheduler jobScheduler = null;
   if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
    jobScheduler = context.getSystemService(JobScheduler.class);
   }
   jobScheduler.cancelAll();

   int i = 1;

   for (MyPojo pojo: complexObject.getTasks()) {
    if (i < 100) {
     PersistableBundle persistableBundle = new PersistableBundle();
     persistableBundle.putInt("id", pojo.getId(); 
     persistableBundle.putString("url", pojo.getImageURL()); 
     persistableBundle.putString("parent_directory", "Mydirectory/."); 
     ComponentName serviceComponent = new ComponentName(context, TestJobService.class);
     JobInfo.Builder builder = new JobInfo.Builder(12345, serviceComponent);
     builder.setExtras(persistableBundle);
     builder.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY);
     builder.setOverrideDeadline(10 * 1000); // maximum delay

**jobScheduler.schedule(builder.build());**

     i++;

     Log.d("i count is ", " " + i);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...