列表类的操作都一样 ListBaseModel
public interface ListBaseModel<T> extends BaseModel {
Observable<List<T>>getList(String... params);
Observable<T>getEntity(String... params);
}
ListBaseView
public interface ListBaseView<T> extends BaseView {
void refresh(List<T> list);
void load(List<T> list);
void err(String err);
void start(List<T> list);
void loadComplete();
void scrollToTop();
}
@GET("data/福利/{size}/{page}")
Observable<BaseInfo<BeautyInfo,String>>getBeautyList(
@Header("Cache-Control") String cacheControl,
@Path("size") int size,
@Path("page") int page
);
retrofit请求首部字段设置缓存
public class RxManager {
public RxBus mRxBus = RxBus.getInstance();
//管理rxbus订阅
private Map<String, Observable<?>> mObservables = new HashMap<>();
/*管理Observables 和 Subscribers订阅*/
private CompositeSubscription mCompositeSubscription = new CompositeSubscription();
/**
* RxBus注入监听
* @param eventName
* @param action1
*/
public <T>void on(String eventName, Action1<T> action1) {
Observable<T> mObservable = mRxBus.register(eventName);
mObservables.put(eventName, mObservable);
/*订阅管理*/
mCompositeSubscription.add(mObservable.observeOn(AndroidSchedulers.mainThread())
.subscribe(action1, new Action1<Throwable>() {
@Override
public void call(Throwable throwable) {
throwable.printStackTrace();
}
}));
}
/**
* 单纯的Observables 和 Subscribers管理
* @param m
*/
public void add(Subscription m) {
/*订阅管理*/
mCompositeSubscription.add(m);
}
/**
* 单个presenter生命周期结束,取消订阅和所有rxbus观察
*/
public void clear() {
mCompositeSubscription.unsubscribe();// 取消所有订阅
for (Map.Entry<String, Observable<?>> entry : mObservables.entrySet()) {
mRxBus.unregister(entry.getKey(), entry.getValue());// 移除rxbus观察
}
}
//发送rxbus
public void post(Object tag, Object content) {
mRxBus.post(tag, content);
}
}
compile 'com.github.RoyWallace:BottomNavigationBar:v0.1'
BeautyPhotoActivity
NewsDetailActivity
JCVideoPlayerStandard