3

Так из Android SDK для GcmNetworkManagerКогда будет oneOffTaks быть снова выполнены с результатом GcmNetworkManager.RESULT_RESCHEDULE

общественности статической окончательный ИНТ RESULT_RESCHEDULE

Указывает на задание не удалось выполнить, и должен быть повторен с отвали.

Task task = new OneoffTask.Builder() 
        .setService(MyService.class) 
        .setExecutionWindow(0, 15) 
        .setUpdateCurrent(true) 
        .setRequiredNetwork(Task.NETWORK_STATE_CONNECTED) 
        .setRequiresCharging(false) 
        .build(); 
      mGcmNetworkManager.schedule(task); 

Внутри MyService

public int onRunTask(TaskParams taskParams) { 
    /** task execution logic here */ 
    if (success) { 
     return RESULT_SUCCESS; 
    } else { 
     return RESULT_RESCHEDULE; 
    } 
} 

Когда выполнение терпит неудачу, он вернет RESULT_RESCHEDULE, и он будет повторен. Поэтому мне интересно, когда это будет повторено?

Благодаря

ответ

2

Исходя из этого documentation, RESULT_RESCHEDULE означает, что ваша задача не удалось тогда перепланирует вашу задачу, поэтому она будет выполнена снова, когда условия будут выполнены.

По умолчанию, если вы вернетесь RESULT_RESCHEDULE из вашего onRunTask, ваша задача выполняется снова, как только условия (зарядка, интернет) вы определили для него будут выполнены.

  • один вариант, если вам нужно только ограничить подсчет перепланирования для хранения где-того количества перепланирования, и когда она достигает ваш определенный предел, возвращение RESULT_FAILURE вместо RESULT_RESCHEDULE
  • вторых, если вам нужно больше контроля будет возвращать RESULT_FAILURE и планировать задачу OneOff, сделать ее узнаваемой по специальному тегу и снова подсчитать, сколько раз вы запланировали ее где-то, таким образом вы сможете контролировать подсчет и задержку между выполнением задачи

Однако вы можете проверить это tutorial, когда ваш код часто терпит неудачу и его необходимо повторить. Библиотека Java 7/8 предоставляет богатый и ненавязчивый API с быстрым и масштабируемым решением этой проблемы.

Надеюсь, это поможет!

+0

Благодарим за описание. Теперь я понимаю это лучше. Эта библиотека может быть немного тяжелой для моего случая, но очень хорошая рекомендация, хотя – Xiaogegexiao

 Смежные вопросы

  • Нет связанных вопросов^_^