2016-04-14 4 views
1

RXJava Timer gibt Subskription zurück, wobei Action1 Long type verwendet. Ich brauche ein anderes, um das Action1-Objekt eines anderen Typs zu übergeben.rxjava timer subscribe NICHT lang Typ

Observable<Long> observable = Observable.timer(7, TimeUnit.SECONDS, Schedulers.computation()); 
cancelOrderSubscription = observable 
    .subscribeOn(Schedulers.computation()) 
    .observeOn(AndroidSchedulers.mainThread()) 
    .subscribe(new Action1<Long>() { 
     @Override 
     public void call(Long aLong) { 
      // NOT LONG REQUIRED 
     } 
    }); 
+1

Ordnen Sie es einfach Ihrem Typ und Wert Ihrer Wahl zu: Timer (1, SECONDS) .map (v -> "Hallo") ... – akarnokd

Antwort

1

Basierend auf akarnokd Kommentar.

Observable.timer(5, TimeUnit.SECONDS) 
     .observeOn(AndroidSchedulers.mainThread()) 
     .map(new Func1<Long, MyOrderStorageItem>() { 
      @Override 
      public MyOrderStorageItem call(Long aLong) { 
       return myOrderStorageItem; 
      } 
     }) 
     .subscribe(new Action1<MyOrderStorageItem>() { 
      @Override 
      public void call(MyOrderStorageItem myOrderStorageItem) { 
       // use object myOrderStorageItem 
      } 
     });