2015-07-19 11 views
6

Próbuję wykonać usługę przy użyciu usługi GcmTaskService. To jest mój kod w głównym działaniu, aby zadzwonić do usługi o nazwie Myservice.Przełóż parametry na GcmTaskService

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

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

To jest klasa MyService.

public class MyService extends GcmTaskService { 

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

Co chcę wiedzieć, jak przekazać parametry do tej usługi?

+0

Czy możesz określić, jakie parametry chcesz przekazać do funkcji onRunTask? 'TaskParams' ma metodę getTag(), która odnosi się do znacznika twojego zadania, jeśli to jest to, co musisz śledzić. Proszę odnieść się do [tutaj] (https://github.com/google/gcm/issues/67) i [przykładowej usługi GCMTaskService] (https://github.com/google/gcm/blob/master/samples/android/ gcm-demo/src/main/java/com/google/android/gcm/demo/service/TaskSchedulerService.java). – Koh

+0

Potrzebuję zadania, aby wysłać dane do serwera, gdy połączenie z Internetem jest z powrotem, więc muszę przekazać listę tablic zawierającą łańcuchy do tego zadania. –

Odpowiedz

0

Jedyną opcją, jaką znalazłem, jest użycie albo współdzielonych preferencji, albo bazy danych, więcej szczegółów można znaleźć tutaj.

GcmTaskService

+1

Ta droga jest oczywiście błędna! Z pewnością nie jest to opcja "jedyna" i wyraźnie są lepsze sposoby. Powinieneś zaakceptować odpowiedź Dearmasha jako poprawną i użyć setExtras do przekazania parametrów do onRunTask ... – Massimo

Powiązane problemy