android基本开发框架

  1. mvp作为页面开发模版;

  2. 页面兼容 空页面, 加载中, 网络异常;

  3. 网络请求封装;封装为helper;

  4. SharePrefs封装helper

  5. 多用helper模式;

  • baseActivity

  • baseFragmnet

  • baseView

  • basePresenter

  • ActivityManager

  • Rxjava2 manager

页面和网络绑定的框架

一个页面可能会展示的页面有 正常&空页面&加载中页面&网络异常页面;
借助mvp框架, activity+fragment+presenter+contract, 在presenter中请求数据,
fragment充当了一个mvp中v角色, 用butterKnife绑定控件, 当fragment的onDestoryView被执行, 就该停止网络加载数据, 并且取消对订阅关系,既取消对我哪里过请求回来的数据的订阅;

页面框架 + 网络请求框架 => 联系比较密切的是 提供当页面退出时,取消网络请求,且取消对网络请求数据的订阅;

一个网络请求框架。

底层用okHttp实现,
[1]重写请求体requestBody,添加所需的公共参数;以及加密字段;
[1.1 ] 重写partBody,用来区分文件和普通value;
[2] 可以写各种拦截器;
[3] {

  1. 当页面退出, 可以取消正在进行的网络请求

利用retrofit+rxjava

  1. 拦截请求, 添加公共参数;
  1. 不要过度封装;可以提供直接给json的&json解析后的javaBean;
  1. 可以把所有的网络请求都集中在一个类里;

  2. 接口也集中在一个类里;

}

[4] json解析框架;

【5】记得封装下拉刷新和上拉加载更多,约束在网络请求是串行的,
同一时刻只能有和一个网络请求;
在fragment中标志状态;

public enum RecyclerViewStatusEnum {
    refreshing,loadmore,none
}

  • 不纠结

解决需求,该有的流程都有,流程细节一般有多个实现方案,
并且多个实现方案也没有很大的区别,
选择任意一种都是可以的,
注意力关注在业务流程的完整性,而非纠结于某一个流程到底该选取哪种实现方式,因为所有的实现方式都是对的,并没有高低上下之分,
所以不要纠结于细节的实现上;

比如, 页面loading, 至少有4种实现方式;
【1】用pullToRefresh刷新头作为loading,
【2】用dialog作为loading,
【3】用一个布局作为loading,且占据titlebar的位置;
【4】用一个布局作为loading, 不占据titlebar的位置;

在合适的场景下选取合适的方案;
比如在pullToRefresh列表中,就可以选取【1】【4】方案;
【4】方案更通用, 一些展示行页面也可以用的。

  • 一种网络异常提醒的方式

在封装的网络请求工具里提示;

  • 全局异常捕获
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值