项目链接
一. 项目整体框架
二. 技术实现
1. 网络刷新实现
- 定义在Baseactivity
/*** 无网状态—>有网状态 的自动重连操作,子类可重写该方法 */open fun doReConnected() {// NetworkChangeReceiver进行监听LiveEventBus.get("isConnected", Boolean::class.java).observe(this) {if (it) startHttp()}}
- 设置一个网络状态监听器,用于监测网络连接变化
class NetworkChangeReceiver : BroadcastReceiver() {/*** 缓存上一次的网络状态*/private var hasNetwork = mmkv.decodeBool(Constant.HAS_NETWORK_KEY, true)override fun onReceive(context: Context, intent: Intent) {val isConnected = NetWorkUtil.isNetworkConnected(context)if (isConnected) {if (!hasNetwork) {LiveEventBus.get("isConnected").post(isConnected)}} else {//同时开启WIFI和数据的时候,关闭WIFI可能会造成短时间断网,所以这里再判断一次if (!NetWorkUtil.isNetworkConnected(context)) {LiveEventBus.get("isConnected").post(isConnected)}}hasNetwork = isConnected}
}
//TODO NetworkChangeReceiver 的实现