[发明专利]在异步线程中更新UI的方法及系统有效
申请号: | 201611129759.5 | 申请日: | 2016-12-09 |
公开(公告)号: | CN106775699B | 公开(公告)日: | 2021-07-23 |
发明(设计)人: | 刘一琛 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
主分类号: | G06F9/451 | 分类号: | G06F9/451;G06F9/54 |
代理公司: | 湖北武汉永嘉专利代理有限公司 42102 | 代理人: | 许美红 |
地址: | 430073 湖北省武汉市东湖开*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 异步 线程 更新 ui 方法 系统 | ||
1.一种在异步线程中更新UI的方法,其特征在于,包括以下步骤:
创建更新UI的异步线程,包括重写该异步线程的run方法,并通过安卓系统的WindowManager在该异步线程中创建新的根视图rootview;具体包括:通过安卓系统中的context调用其getSystemService方法,获取系统的窗口服务,并返回一个WindowManger对象;创建一个布局作为异步UI的根视图rootview,然后调用WindowManger的addview方法,将创建的根视图rootview添加进去;在调用addview方法时还需要传入另外一个参数,即WindowManager.LayoutParams对象,该对象中有成员winth、height,分别用来设置根视图布局layout的宽高、format成员、以及type表示窗体的类型,窗体类型还是与主线程保持一致,使用WindowManager.LayoutParams.TYPE_APPLICATION,表示是应用的类型;
在异步线程中创建消息循环,包括创建一消息队列,用于阻塞该异步线程的run方法,并防止该异步线程中的根视图rootview被销毁;还包括添加逻辑:如果有UI刷新的操作,则在异步线程中进行刷新;若无,则保持等待状态;具体为:通过安卓系统中的Looper工具提供的prepare方法来创建当前线程的Looper对象,当prepare方法调用后,通过调用Looper对象的loop方法创建消息队列并且处于等待状态,则在取消消息队列之前,该异步线程的run方法一直处于运行状态,同时在没有UI刷新操作时,让出所占用的CPU;所述消息队列具体通过安卓系统提供的Handler工具来处理,将Handler对象绑定到指定的Loop对象中,当需要发送更新UI操作时,直接调用handler对象的post方法,对异步线程的UI进行各种控制;
将UI更新操作的消息发送到消息队列,并在异步线程中更新UI。
2.根据权利要求1所述的方法,其特征在于,所述消息队列采用MessageQueue,其为安卓系统提供的基于epoll的阻塞队列。
3.一种在异步线程中更新UI的系统,其特征在于,包括:
异步线程创建模块,用于创建更新UI的异步线程,包括重写该异步线程的run方法,并通过安卓系统的WindowManager在该异步线程中创建新的根视图rootview;具体通过安卓系统中的context调用其getSystemService方法,获取系统的窗口服务,并返回一个WindowManger对象;创建一个布局作为异步UI的根视图rootview,然后调用WindowManger的addview方法,将创建的根视图rootview添加进去;
消息循环创建模块,用于对异步线程创建消息循环,包括创建一消息队列,用于阻塞该异步线程的run方法,并防止该异步线程中的根视图rootview被销毁;还包括添加逻辑:如果有UI刷新的操作,则在异步线程中进行刷新;若无,则保持等待状态;具体为:通过安卓系统中的Looper工具提供的prepare方法来创建当前线程的Looper对象,当prepare方法调用后,通过调用Looper对象的loop方法创建消息队列并且处于等待状态,则在取消消息队列之前,该异步线程的run方法一直处于运行状态,同时在没有UI刷新操作时,让出所占用的CPU;所述消息队列具体通过安卓系统提供的Handler工具来处理,将Handler对象绑定到指定的Loop对象中,当需要发送更新UI操作时,直接调用handler对象的post方法,对异步线程的UI进行各种控制;
更新模块,用于将UI更新操作的消息发送到消息队列,并在异步线程中更新UI。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611129759.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种存储系统配置信息的获取方法
- 下一篇:一种简化代码的方法和装置