9
什么时候应该使用RxJava Observable,什么时候应该在Android上使用简单的Callback?
我正在为我的应用程序联网。因此,我决定尝试使用Square的Retrofit。我看到他们支持简单Callback @GET("/user/{id}/photo") void getUserPhoto(@Path("id") int id, Callback<Photo> cb); 和RxJava的 Observable @GET("/user/{id}/photo") Observable<Photo> getUserPhoto(@Path("id") int id); 乍一看,两者看起来很相似,但是当涉及到实现时,就会变得很有趣... 虽然使用简单的回调实现看起来类似于: api.getUserPhoto(photoId, new Callback<Photo>() { @Override public void onSuccess() { } }); 这非常简单明了。并Observable很快变得冗长而复杂。 public Observable<Photo> getUserPhoto(final int photoId) { return Observable.create(new Observable.OnSubscribeFunc<Photo>() { @Override public Subscription onSubscribe(Observer<? super Photo> observer) { try { observer.onNext(api.getUserPhoto(photoId)); …