UI控件的初始显示状态与Service的存亡状态绑定
来源:互联网 发布:淘宝优惠券怎么成代理 编辑:程序博客网 时间:2024/06/06 12:30
应用场景:
非常多啦,只要你这个控件会根据Service的运行状态改变内容,比如你一个按钮原始状态是“点击下载”,点击后显示“正在下载”,你不可能看着它下载吧,你得去其他Activity逛逛,逛完回来下载依然没有完成控件还应该显示”正在下载”,可现实是控件成了初始状态“点击下载”
解决思路(不是存SP):
控件的显示状态和Service的运行状态绑定,Service在运行说明正在下载就显示”正在下载”,不在运行说明下载完成或者被系统干掉了就显示”点击下载”
代码逻辑:
获取系统现在正在运行得所有服务,看看有没有我们的服务在运行,然后做相应UI初始化
/** * 判断某个服务是否正在运行 * @param context * @param servierName 服务的名称(该服务类的完整路径) * @return 是否运行 */ public **static** boolean serviceRunning(Context context, String servierName) { ActivityManager mAMangager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); //获得服务集合,参数:服务个数 List<ActivityManager.RunningServiceInfo> list = mAMangager.getRunningServices(100); //遍历比对 for (ActivityManager.RunningServiceInfo info : list) { String currentService = info.service.getClassName(); if (servierName.equals(currentService)) { //存在 return true; } } return false; }
调用:
比如我的服务类是service包下MyServiceif(serviceRunning(上下文,"com.ycc.service.MyService")){ 控件.setText("正在下载"); }else{ 控件.setText("点击下载"); }
上面说的只是界面初始化哟,如果你要在下载完成后显示”下载完成”那就在下载完成后发消息给Handler,在那儿更新UI吧
和Service没有关系的控件,可以把控件的状态存到SharedPreferences偏好设置里,根据里面的值初始化控件
0 0
- UI控件的初始显示状态与Service的存亡状态绑定
- 对象的初始状态
- 有多个初始状态的 DFA
- 绑定UI状态
- 恢复windows mobile模拟器的初始状态
- iOS 设置Button的 初始选中状态
- .NET20 一种简单的窗口控件UI状态控制方法
- .NET20 一种简单的窗口控件UI状态控制方法
- .NET20 一种简单的窗口控件UI状态控制方法
- 控件的鼠标状态
- iPhoneX状态条的隐藏与显示
- 初始状态
- Web Service 的状态控制
- Web Service 的状态控制
- 获取service的运行状态
- 保存程序的UI状态
- TextField--初始状态显示默认文本信息,当用户开始输入时,默认设置的文本消失!
- MFC--控件的显示或使能等状态处理
- 机器学习笔记(二):matplotlib基础
- Win7系统无法验证文件数字签名(0xcoooo428)最佳解决方法
- ES5的Function新增的bind方法简单介绍
- xgboost:一个纯小白的学习历程
- Android四大组件之Service(一)
- UI控件的初始显示状态与Service的存亡状态绑定
- 我们需要什么样的前端开发环境
- http又来了
- Yeoman上安装数最多的generator
- 一步一步认识用户画像
- nyoj 255 C小加 之 随机数
- 简化DB2 9.7的安全模型
- 介绍几种redis数据超过可用内存的处理方式
- docker 扫盲