项目中采用了MVP模式进行开发,在搭建框架的时候,由于用到了RxJava+Retrofit进行网络请求,M层不好做封装,所以网络请求统一在Preseter层发送,包括请求回调。
现在我想在所有网络请求过程中显示进度条,请求结束关闭进度条,但是BasePresenter中又没有context传给进度条用来显示,应该怎么设计?一定要把BaseActivity传入BasePresenter吗?
ps.进度条当然可以在每个请求发起和结束回调中处理,但是每个请求都这样做显然很麻烦。我就想统一做一些View(V层)的处理,MVP模式貌似在这方面并不好实现
你可以继承Subscriber写一个订阅者,通过构造方法传递一个Context进去,然后分别在onStart里面显示一个进度条,onComplete和onError里关闭进度条,至于如何显示和关闭,可以通过Handler来做。看到你的问题我想起来之前看到过类似问题的解决方法,给你找了下,在这里https://github.com/tough1985/... 当然你可以在自定义你想要的进度条或者进度条对话框,通过Handler发送消息去显示和隐藏。
一周热门 更多>