2015-07-19 23 views
6

GcmTaskService kullanarak bir hizmet uygulamayı deniyorum. Bu, Myservice adlı hizmeti çağırmak için ana etkinlikteki kodum.Geçiş Parametrelerini GcmTaskService

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

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

Bu, MyService sınıfıdır.

public class MyService extends GcmTaskService { 

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

Bilmek istediğim, bu hizmete parametrelerimi nasıl iletebilirim?

+0

OnRunTask'a ne tür parametreler geçirmek istediğinizi belirtebilir misiniz? 'TaskParams', görevinizin etiketine başvuran bir getTag() yöntemine sahiptir; Lütfen [burada] (https://github.com/google/gcm/issues/67) adresine ve [örnek bir GCMTaskService] adresine bakın (https://github.com/google/gcm/blob/master/samples/android/ gcm-demo/src/main/java/com/google/android/gcm/demo/hizmet/TaskSchedulerService.java). – Koh

+0

Internet bağlantısı geri döndüğünde bir sunucuya veri göndermeye ihtiyacım var, bu nedenle bu görevi Dizeleri içeren bir dizi listesini iletmem gerekiyor. –

cevap

0

Bulduğum tek seçenek, paylaşılan tercihleri ​​veya veritabanını kullanmaktır, daha fazla ayrıntı burada bulunabilir.

GcmTaskService

+1

Bu şekilde belli ki yanlış! Elbette ki bu "tek" seçenek değildir ve açıkça daha iyi yollar vardır. Dearmash'ın cevabını doğru olarak kabul etmeli ve setExtras'ı onRunTask'a geçirecek parametreleri kullanmalısın ... – Massimo