String test="old data";
final Observable observable=Observable.just(test);
Observable observable_defer = Observable.defer(new Callable<ObservableSource<String>>() {
@Override
public ObservableSource<String> call() throws Exception {
return observable;
}
});
test="new data";
observable.subscribe(consumer2);//打印 old data
observable_defer.subscribe(consumer2);//打印 new data
//數據發射源對象
ObservableEmitter observableEmitter ;
private void sendData(){
if(observableEmitter != null){
for(int i = 0;i < 10; i++){
//數據發射源對象發射數據
observableEmitter .onNext("Observable 數據data " +i);
}
observableEmitter .onComplete();
}
}
private ObservableOnSubscribe<String> observableOnSubscribe = new ObservableOnSubscribe<String>() {
@Override
public void subscribe(@NonNull ObservableEmitter<String> e) throws Exception {
printThread("subscribe");
observableEmitter = e;
observableEmitter .onNext("Observable 數據data");
sendData();
}
};
Observable observable = Observable.create(observableOnSubscribe )