2015-07-19 12 views
6

Sto tentando di implementare un servizio utilizzando GcmTaskService. Questo è il mio codice nell'attività principale per chiamare il servizio chiamato Myservice.Parametri del passaggio a GcmTaskService

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

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

Questa è la classe MyService.

public class MyService extends GcmTaskService { 

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

Quello che voglio sapere è come passare i parametri a questo servizio?

+0

È possibile specificare il tipo di parametri che si desidera passare a onRunTask? 'TaskParams' ha un metodo getTag() che si riferisce al tag della tua attività, se è quello che devi monitorare. Fare riferimento a [qui] (https://github.com/google/gcm/issues/67) ea [un esempio di GCMTaskService] (https://github.com/google/gcm/blob/master/samples/android/ GCM-demo/src/main/java/com/Google/Android/GCM/demo/servizio/TaskSchedulerService.java). – Koh

+0

Ho bisogno del compito di inviare dati ad un server quando la connettività internet è tornata, quindi ho bisogno di passare un elenco di array contenente stringhe a questa attività. –

risposta

0

L'unica opzione che ho trovato è utilizzare le preferenze condivise o un database, maggiori dettagli possono essere trovati qui.

GcmTaskService

+1

Questo modo è ovviamente sbagliato! Sicuramente non è l'unica opzione, e chiaramente ci sono modi migliori. Devi accettare la risposta di Dearmash come corretta e usare setExtras per passare parametri a onRunTask ... – Massimo