Android Rxjava subscribe to a variable change

前端 未结 3 946
故里飘歌
故里飘歌 2020-12-14 06:09

I am learning Observer pattern, I want my observable to keep track of a certain variable when it changes it\'s value and do some operations, I\'ve done something like :

3条回答
  •  没有蜡笔的小新
    2020-12-14 07:02

    Nothing is magic in the life : if you update a value, your Observable won't be notified. You have to do it by yourself. For example using a PublishSubject.

    public class Test extends MyChildActivity {
    
        private int VARIABLE_TO_OBSERVE = 0;
    
        Subject mObservable = PublishSubject.create();  
    
       protected void onCreate() {/*onCreate method*/
            super();
            setContentView();
            method();
            changeVariable();
        }
    
        public void changeVariable() {
            VARIABLE_TO_OBSERVE = 1;
            // notify the Observable that the value just change
            mObservable.onNext(VARIABLE_TO_OBSERVE);
        }
    
       public void method() {
           mObservable.map(value -> {
               if (value == 1) doMethod2();
               return String.valueOf(value);
           }).subScribe(string -> System.out.println(string));
       }
    
       public void doMethod2() {/*Do additional operations*/}
    
     }
    

提交回复
热议问题