2016-11-14 3 views
0

Когда я использую следующий код: (Observable.create())repeatUtil() не работает на Rxjava 2.x

Observable.create(new ObservableOnSubscribe<User>() { 
     @Override 
     public void subscribe(ObservableEmitter<User> emitter) throws Exception { 
      emitter.onNext(new User("Even201314", 14)); 
     } 
    }).repeatUntil(new BooleanSupplier() { 
     @Override 
     public boolean getAsBoolean() throws Exception { 
      repeatCount += 1; 
      Log.d(TAG, "count: " + repeatCount); 
      return repeatCount > 10; 
     } 
    }) 

метод RepeatUntil не будет executed.The консольный бы ничего не войти.
Но если я использую следующий код: (Observable.just())

final User user = new User("Even201314", 24); 
    Observable.just(user).repeatUntil(new BooleanSupplier() { 
     @Override 
     public boolean getAsBoolean() throws Exception { 
      repeatCount += 1; 
      Log.d(TAG, "count: " + repeatCount); 
      return repeatCount > 10; 
     } 
    }) 

метод RepeatUntil будет executed.And консоль будет войти:

11-14 00:00:36.312 5788-5854/com.even.learningrxjava2 D/MainActivity: count: 1 
11-14 00:00:36.312 5788-5854/com.even.learningrxjava2 D/MainActivity: count: 2 
11-14 00:00:36.313 5788-5854/com.even.learningrxjava2 D/MainActivity: count: 3 
11-14 00:00:36.313 5788-5854/com.even.learningrxjava2 D/MainActivity: count: 4 
11-14 00:00:36.313 5788-5854/com.even.learningrxjava2 D/MainActivity: count: 5 
... 

Я не знаю, почему Observable.create() не выполнит метод repeatUntil()?

ответ

0

Необходимо, чтобы в противном случае повтор не включался.

Смежные вопросы