Jobscheduler Android - Como baixar grandes Nºs de imagens usando Job Scheduler

votos
0

Eu tenho um jobservice que leva url imagem e baixar a imagem em uma pasta. Eu quero saber como eu posso criar um jobscheduler ele irá definir empregos para eu baixar todas as 400 imagens. Eu tenho que baixar aproximadamente 400 imagens de diferentes 400 http urls. É um mesmo trabalho que será executado um após o outro em um loop.

Abaixo está o código que tenho escrito

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);
    }

Não o seu trabalho e não provocando qualquer pedido.

Publicado 08/11/2018 em 06:36
fonte usuário
Em outras línguas...                            


1 respostas

votos
1

Adicionar o seguinte a última linha no statment dentro do loop for jobScheduler.schedule (builder.build ());

código atualizado:

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);
    }
Respondeu 08/11/2018 em 08:16
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more