2015-07-19 3 views
6

Я пытаюсь реализовать службу, используя GcmTaskService. Это мой код в основном действии для вызова службы под названием Myservice.Pass Parameters To GcmTaskService

OneoffTask myTask = new OneoffTask.Builder() 
      .setService(MyService.class) 
      .setExecutionWindow(0, 10) 
      .setTag("test-upload") 
      .build(); 

    GcmNetworkManager.getInstance(this).schedule(myTask); 

Это класс MyService.

public class MyService extends GcmTaskService { 

    @Override 
    public int onRunTask(TaskParams taskParams) { 
     Log.i("onRunTask: ", taskParams.getTag() + ""); 
     return GcmNetworkManager.RESULT_RESCHEDULE; 
    } 
} 

Что я хочу знать, как передать параметры этой службе?

+0

Можете ли вы указать, какие параметры вы хотите передать в onRunTask? 'TaskParams' имеет метод getTag(), который ссылается на тег вашей задачи, если это то, что вам нужно отслеживать. См. [Здесь] (https://github.com/google/gcm/issues/67) и [образец GCMTaskService] (https://github.com/google/gcm/blob/master/samples/android/ GCM-демонстрационная/SRC/главная/Java/COM/Google/Android/гсм/демо/сервис/TaskSchedulerService.java). – Koh

+0

Мне нужна задача отправить данные на сервер, когда подключение к Интернету вернулось, поэтому мне нужно передать список массивов, содержащий строки для этой задачи. –

ответ

0

Единственное, что я нашел, это использовать либо общие настройки, либо базу данных, более подробную информацию можно найти здесь.

GcmTaskService

+1

Этот путь, очевидно, неверен! Разумеется, это не единственный вариант, и, несомненно, есть лучшие способы. Вы должны принять ответ Dearmash как правильный и использовать setExtras для передачи параметров onRunTask ... – Massimo

7

https://developers.google.com/android/reference/com/google/android/gms/gcm/TaskParams

TaskParams имеет getExtras(), который возвращает пакет для вас использовать. Это должно быть заполнено вызовом setExtras() на вашем TaskBuilder.

+0

Не лично это пробовал, но это произошло по этому вопросу, когда смотрели что-то еще. Похоже, это должен быть ответ ... – Dearmash

+0

Это правильный путь;) – Massimo