You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3.8 KiB
3.8 KiB
网络状态指示器实现说明
功能概述
在OXFaceOnlineActivity的视频流界面右上角实现了网络状态指示器,用于实时显示网络连接状态。
功能特性
1. 网络状态显示
- 位置: 屏幕右上角(24dp大小)
- 绿色满格: WiFi/以太网连接良好且主域名可达
- 黄色中等: 4G/5G连接良好且主域名可达
- 红色X: 网络异常或主域名不可达
2. 网络检测机制
- 检测频率: 每10秒检测一次
- 检测内容:
- 基础连接状态(WiFi/以太网/移动数据)
- 主域名可达性(ping testmanager.ouxuanzhineng.cn)
- 网络类型判断
- 使用工具: UtilCode库的NetworkUtils
3. 交互功能
- 图标显示: 一直显示当前网络状态
- 点击详情: 点击图标显示详细网络信息弹窗
- 恢复提示: 网络从异常恢复时显示Toast提示
- 异常提示: 网络变为异常时显示Toast提示
4. 详细信息弹窗内容
- 网络状态描述
- 连接状态(已连接/未连接)
- 网络类型(WiFi/以太网/4G/5G等)
- IP地址
- 网关信息(WiFi时)
- 主域名状态(可达/不可达)
- 检测时间
技术实现
1. 核心类
NetworkStatusIndicator
: 网络状态指示器主类- 集成在
OXFaceOnlineActivity
中
2. 使用的库
com.blankj.utilcode:1.30.7
:网络检测功能- 项目现有的
NetworkConfig
:获取主域名配置
3. 生命周期管理
onCreate
: 初始化指示器onResume
: 启动网络监控onStop
: 停止网络监控onDestroy
: 销毁资源
4. 线程管理
- 后台线程执行网络检测(ScheduledExecutorService)
- 主线程更新UI显示
- 异常处理和日志记录
测试验证
1. 网络状态测试
- WiFi连接正常时显示绿色图标
- 移动数据连接时显示黄色图标
- 网络断开时显示红色图标
- 网络恢复时显示Toast提示
2. 交互测试
- 点击图标显示详细信息弹窗
- 弹窗3秒后自动关闭
- 详细信息包含所有必要字段
3. 性能测试
- 每10秒检测一次,不影响界面流畅度
- 后台运行时正确停止监控
- 资源正确释放,无内存泄漏
使用说明
1. 启动应用
应用启动OXFaceOnlineActivity后,网络状态指示器会自动开始工作
2. 查看网络状态
观察右上角的图标颜色:
- 绿色:网络状态优秀
- 黄色:网络状态良好
- 红色:网络状态异常
3. 查看详细信息
点击网络状态图标,会显示包含以下信息的弹窗:
- 当前网络状态
- IP地址和网关
- 主域名连通性
- 检测时间戳
4. 网络恢复提示
当网络从异常状态恢复正常时,会显示"网络连接已恢复"的Toast提示
配置说明
1. 检测间隔调整
在NetworkStatusIndicator.java
中修改CHECK_INTERVAL
常量
2. 图标位置调整
在initNetworkIcon()
方法中修改RelativeLayout.LayoutParams
3. 图标大小调整
修改SizeUtils.dp2px(24)
中的数值
4. 主域名配置
主域名从NetworkConfig.BASE_URL
获取,可在该配置文件中修改
注意事项
- 权限要求: 需要网络访问权限(已在AndroidManifest.xml中配置)
- 性能影响: 每10秒执行一次ping操作,对性能影响很小
- 异常处理: 所有网络检测都有完整的异常处理和日志记录
- 生命周期: 严格按照Activity生命周期管理资源,避免内存泄漏
扩展功能
未来可以考虑添加:
- 网络质量评分显示
- 网络速度测试
- 历史网络状态记录
- 可配置的检测间隔
- 更多网络类型的支持
日志记录
所有关键操作都会记录到LogManager中,包括:
- 网络状态变化
- 检测异常
- 用户交互行为
- 生命周期事件