public class MainActivity extends AppCompatActivity {
private TextView mViewById;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mViewById = (TextView) findViewById(R.id.tv_name);
//第一种方式
Observable observable= Observable.create(new Observable.OnSubscribe<String>() {
@Override
public void call(Subscriber<? super String> subscriber) {
subscriber.onNext("hello");
}
});
Subscriber subscriber=new Subscriber<String>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onNext(String o) {
mViewById.setText(o);
}
};
observable.subscribe(subscriber);
//第二种方式
observable.subscribe(new Action1<String>() {
@Override
public void call(String o) {
mViewById.setText(o+" 2222");
}
});
//第三种方式
Observable.just("String").subscribe(new Action1<String>() {
@Override
public void call(String s) {
mViewById.setText(s+" 3333");
}
});
//第四种方式 将业务与视图分开 通过map操作符 进行对数据改变
Observable.just("String").map(new Func1<String, String>() {
@Override
public String call(String s) {
return s+"44444";
}
}).subscribe(new Action1<String>() {
@Override
public void call(String s) {
mViewById.setText(s);
}
});
}
}
okhttp的观察者模式使用
最新推荐文章于 2024-04-09 03:25:42 发布