RxJava
观看菜鸟窝视频RxJava2整理
我的github整理学习rxjava
RxJava是一种响应式编程
采用观察者模式
好处:异步、简洁
RxJava 在 GitHub 主页上的自我介绍是 “a library for composing asynchronous and event-based programs using observable sequences for the Java VM”(一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库)。这就是 RxJava ,概括得非常精准。
观察者模式
观察者(Observer)模式:是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听(Source/Listener)模式或者从属(Dependents)模式
观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象再状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。
- 抽象主题(Subject)角色:
抽象主题角色把所有对观察者对象的引用保存在一个聚集(比如ArrayList对象)里,每个主题都可以有任何数量的观察者。抽象主题提供一个接口,可以增加和删除观察者对象,抽象主题角色又叫抽象被观察者角色。 - 具体主题(ConcreteSubject)角色:
将有关状态存入具体观察者对象;在具体主题的内部状态改变时,给所有登记过的观察者发出通知。具体主题角色又叫做具体被观察者角色。 - 抽象观察者(Observer)角色:
为所有的具体观察者定义一个接口,在得到主题通知时更新自己,这个接口叫做更新接口。 - 具体观察者(ConcreteObserver)角色:
存储与主题的状态自怡的状态。具体观察者角色实现抽象观察者角色所有要求的更新接口、以便使本身的状态与主题的状态协调。如果需要,具体观察者角色可以保持一个指向具体主题对象的引用。
基本使用
public class MainActivity extends AppCompatActivity {
private static final String TAG = "123===";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void click(View view) {
//点击按钮
//第一种创建方法,最基本的使用
// firstMethod();
//第二种创建方法,简单的方法
secondMethod();
}
private void secondMethod() {
// Observable<String> observable = Observable.just("1", "2", "3");
Observable<String> observable = Observable.create(new ObservableOnSubscribe<String>() {
@Override
public void subscribe(@NonNull ObservableEmitter<String> e) throws