RxJava生命周期管理

当Activity或者fragment销毁的时候需要取消订阅,否则会消耗内存,导致OOM。这里推荐两种办法:
第一种:

 
CompositeDisposable mDisposables = new CompositeDisposable();
DisposableObserver mObserver = getObservable()//被观察者
        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe(mObserver);
mDisposables.add(mObserver);
当fragment或者activity销毁的时候,清空mDisposables.clear();

第二种使用rxlifecycle-components第三方框架

Activity需要继承RxAppcompatActivity,新建的Fragment则继承RxFragment。
myObservable
    .compose(RxLifecycle.bindUntilEvent(lifecycle, ActivityEvent.DESTROY))
    .subscribe();
具体可以查看官方GitHub

Retrofit Call 获取数据

关于的说明和用法可以详细查看官网

Call<List<Repo>> call = service.listRepos("octocat");

如何得到List<Repo>,请看下面的代码:

call.enqueue(new Callback<List<Repo>>() {  
    @Override
    public void onResponse(Call<List<Repo>> call, Response<List<Repo>> response) {
        
    }

    @Override
    public void onFailure(Call<List<Repo>> call, Throwable t) {
        
    }
});