[发明专利]在异步线程中更新UI的方法及系统有效

专利信息
申请号: 201611129759.5 申请日: 2016-12-09
公开(公告)号: CN106775699B 公开(公告)日: 2021-07-23
发明(设计)人: 刘一琛 申请(专利权)人: 武汉斗鱼网络科技有限公司
主分类号: G06F9/451 分类号: G06F9/451;G06F9/54
代理公司: 湖北武汉永嘉专利代理有限公司 42102 代理人: 许美红
地址: 430073 湖北省武汉市东湖开*** 国省代码: 湖北;42
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 异步 线程 更新 ui 方法 系统
【说明书】:

发明公开了一种在异步线程中更新UI的方法,包括以下步骤:创建更新UI的异步线程,包括重写该异步线程的run方法,并通过安卓系统的WindowManager在该异步线程中创建新的根视图rootview;在异步线程中创建消息循环,包括创建一消息队列,用于阻塞该异步线程的run方法,并防止该异步线程中的根视图rootview被销毁;还包括添加逻辑:如果有UI刷新的操作,则在异步线程中进行刷新;若无,则保持等待状态;将UI更新操作的消息发送到消息队列,并在异步线程中更新UI。本发明可以实现UI更新与应用主UI进行完全的隔离。

技术领域

本发明涉及安卓系统中的UI更新,尤其涉及一种在异步线程中更新UI 的方法及系统。

背景技术

在android系统中,每个app运行时系统都会给app分配一个主线程用来处理app自身的刷新操作,如果在主线程中进行一些复杂的耗时处理,就会造成主线程短暂的停顿卡住,给用户造成应用卡顿的感觉,比如进行一些文件的读写操作,网络的访问,数据库的读取等,并且在android中如果主线程停顿时间过长,系统会直接给出ANR,造成对用户的体验大打折扣,并且在android高版本上,所以一般在android开发时,需要将这些操作放在异步线程中,等操作好了,再将结果反馈给主线程,通知主线程进行更新UI (User Interface用户界面)的操作。不过某些情况下,可能需要自己实现一个UI的界面,让其更新与主线程分离,所以更新就需要在自己的线程中,而在android中如果直接在异步线程中更新UI的话,会发出系统抛出的异常,使应用挂掉。

目前常规的方法:在异步线程更新UI,其实其基本原理是,在异步线程中将数据获取成功后,然后通过持有主线程消息队列的handler将数据获取成功的消息传递到主线程,然后在主线程进行更新UI,其本质UI的更新操作还是在主线程。以图片异步加载举例,当应用异步加载图片时,首先创建一个异步的线程,然后在该线程中进行耗时的操作(图片的下载过程),当图片下载完成后通过将下载好的图片转成Bitmap对象,然后将消息发送到主线程,主线程中的ImageView将bitmap加载显示出来,创建异步线程可以通过创建Thread对象或者AsyncTask对象(这两个都是在android中创建异步线程的工具类),将异步线程的消息发送到主线程可以通过handler的post方法,或者activity的runOnUiThread方法,其参数都是发送一个runable对象,其实runOnUiThread内部也是调用handler的post方法,也有可以通过 handler的sendMessage方法来进行操作,但是其内部也是通过post方法执行的,从上面描述的原理可以知道,其实常规中异步线程更新UI的本质就是异步线程向主线程发送消息,主线程收到消息后在主线程中更新UI,其根本没有在异步线程中更新UI,前面提到过android中直接在异步线程中更新UI 会抛出异常,导致应用crash,所以常规方法中绕过了这个问题。

发明内容

本发明要解决的技术问题在于针对现有技术中更新UI的方式要么使系统主线程出现短暂的停顿卡住,要么会导致系统抛出异常使应用挂掉的缺陷,提供一种在异步线程更新UI的方法,其能做到与应用主UI进行完全的隔离,更新设置等与主UI互相不干扰,提高用户体验,同时也能有效减轻主线程的压力,分担视图刷新的资源消耗。

本发明解决其技术问题所采用的技术方案是:

提供一种在异步线程中更新UI的方法,包括以下步骤:

创建更新UI的异步线程,包括重写该异步线程的run方法,并通过安卓系统的WindowManager在该异步线程中创建新的根视图rootview;

在异步线程中创建消息循环,包括创建一消息队列,用于阻塞该异步线程的run方法,并防止该异步线程中的根视图rootview被销毁;还包括添加逻辑:如果有UI刷新的操作,则在异步线程中进行刷新;若无,则保持等待状态;

将UI更新操作的消息发送到消息队列,并在异步线程中更新UI。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201611129759.5/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top