Работа не выполняется во второй раз - PullRequest
0 голосов
/ 28 января 2019

Я планирую свои задачи по загрузке фонового изображения, используя JobScheduler, FirebaseJobDispatcher и JobService.При отсутствии подключения к Интернету, если я планирую 2 задания одновременно, JobService не вызывается дважды.

здесь я создаю свою работу с помощью JobDispatcher

Job job = mJobDispatcher.newJobBuilder()
            .setService(WMJobService.class)
            .setTag(WMJobScheduler.Tags.ENTITY_PROFILE_IMAGE_UPLOAD)
            .setRecurring(false)
            .setLifetime(Lifetime.FOREVER)
            .setTrigger(Trigger.NOW)
            .setReplaceCurrent(false)
            .setRetryStrategy(RetryStrategy.DEFAULT_EXPONENTIAL)
            .setConstraints(Constraint.ON_ANY_NETWORK)
            .setExtras(extras)
            .build();
    mJobDispatcher.mustSchedule(job);

, а это класс myJobService

public class WMJobService extends JobService {

@Override
public boolean onStartJob(JobParameters job) {
    Log.i("Scheduler", "Starting job: " + job.toString());
    String jobTag = WMUtility.getJobTag(job.getTag());
    switch (jobTag) {
        case WMJobScheduler.Tags.ENTITY_PROFILE_IMAGE_UPLOAD:
            new EntityProfileImageUploadJob(getApplicationContext()).execute(job.getExtras(),
                    jobTag, new JobStatusListener() {
                        @Override
                        public void onSuccess() {
                            jobFinished(job, false);
                        }

                        @Override
                        public void onFailure() {
                            jobFinished(job, true);
                        }
                    });
            break;
      }

@Override
public boolean onStopJob(JobParameters job) {
    return true;
}

}

...