CN112214234A - 基于java的ui更新方法、系统及其存储介质 - Google Patents

基于java的ui更新方法、系统及其存储介质 Download PDF

Info

Publication number
CN112214234A
CN112214234A CN202011150967.XA CN202011150967A CN112214234A CN 112214234 A CN112214234 A CN 112214234A CN 202011150967 A CN202011150967 A CN 202011150967A CN 112214234 A CN112214234 A CN 112214234A
Authority
CN
China
Prior art keywords
interface
updating
sending
refresh
message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011150967.XA
Other languages
English (en)
Inventor
张峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yingxin Technology Co ltd
Original Assignee
Yingxin Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yingxin Technology Co ltd filed Critical Yingxin Technology Co ltd
Priority to CN202011150967.XA priority Critical patent/CN112214234A/zh
Publication of CN112214234A publication Critical patent/CN112214234A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本申请涉及一种基于JAVA的UI更新方法、系统及其存储介质,其方法包括定义保护级别的更新接口refreshUI;更新接口refreshUI内定义初始化函数refresh;封装所有使用handler处理的UI形成封装类esnHandler;定义保护级别的发送函数sendRefreshMessage,获取更新接口refreshUI新建的第一传递参数,使用封装类esnHandler发送至目标线程;更新UI:使用更新接口refreshUI新建第一更新接口,为第一更新接口赋值不同的内容,将赋值后第一更新接口传递至发送函数sendRefreshMessage。具有提高编程效率、逻辑变得清晰简单的效果。

Description

基于JAVA的UI更新方法、系统及其存储介质
技术领域
本申请涉及UI更新的领域,尤其是涉及一种基于JAVA的UI更新方法、系统及其存储介质。
背景技术
目前的安卓智能操作系统中采用的是基于JAVA程序语言设计来生产APP,在设计APP的功能时,会为了提高APP的使用体验而配套设计对应的UI界面,UI界面具有引导用户使用APP的功能以及显示APP操作反应的功能,在使用APP时,需要根据用户的操作或者需要显示的信息来更新UI。
现有安卓智能操作系统规定了在使用APP的过程中只能通过主线程而非子线程才能更新UI。安卓系统中提供了下列方式操作UI更新:第一、直接使用handler机制,结构清晰但是代码过多、逻辑步骤复杂;第二、使用asyncTask,简单快捷,将一些复杂的情况简单化,但是会新开线程,额外消耗系统资源;第三、使用runOnUIThread,代码简单,需要传递context对象,过程复杂。现在更多的安卓开发人员会使用第一种方法,直接使用handler机制。
针对上述中的相关技术,发明人认为存在有在APP中直接使用handler机制更新UI的过程存在代码过多、逻辑步骤复杂的缺陷。
发明内容
为了使安卓系统中APP更新UI的步骤减少,逻辑变得清晰简单,本申请提供一种基于JAVA的UI更新方法、系统及其存储介质。
第一方面,本申请提供一种基于JAVA的UI更新方法,采用如下的技术方案:
一种基于JAVA的UI更新方法,包括如下步骤:
定义保护级别的更新接口refreshUI;
在更新接口refreshUI内定义初始化函数refresh;
封装所有使用handler处理的UI形成封装类esnHandler;
定义保护级别的发送函数sendRefreshMessage,发送函数sendRefreshMessage获取所述更新接口refreshUI新建的第一传递参数,并将所述第一传递参数内的信息使用封装类esnHandler发送至目标线程,目标线程即UI更新主线程;以及,
更新UI:使用更新接口refreshUI新建第一更新接口,为所述第一更新接口赋值不同的内容,将赋值后所述第一更新接口传递至所述发送函数sendRefreshMessage。
通过采用上述技术方案,使用保护级别的第一更新接口,利用第一更新接口作为数据传递的信息通道,再将所有使用handler处理的UI形成封装类esnHandler,信息通道内的数据结合封装类esnHandler,在需要更新UI时无需重复编写调用handler处理UI的代码,大大地提高了编程效率,步骤减少,逻辑变得清晰简单,也降低了错误率。
优选的,所述形成封装类esnHandler中,还包括:
重写信息传递函数handleMessage;
信息传递函数handleMessage获取Message新建的第二传递参数,调用信息传递函数handleMessage的父类传入所述第二传递参数;
将所述第二传递参数赋值给所述第一更新接口;以及,
更新所述第一更新接口。
通过采用上述技术方案,实现封装所有的使用handler处理的UI,利用第一更新接口就能实现对handler信息的传输,无需依次重复地在代码中写出所有的使用handler处理的UI,降低了代码量,大大地提高了编程效率。
优选的,在重写信息传递函数handleMessage前,使用伪代码@Override表示方法重写。
通过采用上述技术方案,作为注释,还能帮助检查是否正确的复写了父类中已有的方法,编译器可以验证@Override下面的方法名是否是父类中所有的,如果没有则报错。
优选的,所述将所述第一传递参数内的信息通过安卓系统内置的消息通道发送至目标线程中,还包括:
获取消息池中一个闲置的msg;
将所述第一传递参数作为对象赋值入所述msg中;以及,
将msg通过安卓系统内置的消息通道发送至目标线程。
通过采用上述技术方案,实现向handler发送消息,更新派生类的UI。
第二方面,本申请提供一种基于JAVA的UI更新系统,采用如下的技术方案:
一种基于JAVA的UI更新系统,包括如下模块:
定义接口模块,用于定义保护级别的更新接口refreshUI;
更新初始模块,用于在更新接口refreshUI内定义初始化函数refresh;
封装处理模块,用于封装所有使用handler处理的UI形成封装类esnHandler;
发送数据模块,用于定义保护级别的发送函数sendRefreshMessage,发送函数sendRefreshMessage获取所述更新接口refreshUI新建的第一传递参数,并将所述第一传递参数内的信息使用封装类esnHandler发送至目标线程,目标线程即UI更新主线程;以及,
更新UI模块,用于使用更新接口refreshUI新建第一更新接口,为所述第一更新接口赋值不同的内容,将赋值后所述第一更新接口传递至所述发送函数sendRefreshMessage。
通过采用上述技术方案,使用定义接口模块定义保护级别的第一更新接口,更新初始模块初始化refresh,利用第一更新接口作为数据传递的信息通道,封装处理模块输出封装类esnHandler,更新UI模块使用发送数据模块结合封装类esnHandler,在需要更新UI时无需重复编写调用handler处理UI的代码,大大地提高了编程效率,步骤减少,逻辑变得清晰简单,也降低了错误率。
优选的,所述封装处理模块中包括:
重写函数单元,用于重写信息传递函数handleMessage;
参数传递单元,用于使信息传递函数handleMessage获取Message新建的第二传递参数,调用信息传递函数handleMessage的父类传入所述第二传递参数;
参数赋值单元,用于将所述第二传递参数赋值给所述第一更新接口;以及,
更新接口单元,用于更新所述第一更新接口。
通过采用上述技术方案,实现封装所有的使用handler处理的UI,利用第一更新接口就能实现对handler信息的传输,无需依次重复地在代码中写出所有的使用handler处理的UI,降低了代码量,大大地提高了编程效率。
优选的,所述封装处理模块中包括:
方法表示单元,用于在重写信息传递函数handleMessage前,使用伪代码@Override表示方法重写。
通过采用上述技术方案,方法表示单元用于注释以及用于帮助检查是否正确的复写了父类中已有的方法,编译器可以验证@Override下面的方法名是否是父类中所有的,如果没有则报错。
优选的,所述发送数据模块中还包括:
获取消息单元,用于获取消息池中一个闲置的msg;
对象赋值单元,用于将所述第一传递参数作为对象赋值入所述msg中;以及,
发送消息单元,用于将msg通过安卓系统内置的消息通道发送至目标线程。
通过采用上述技术方案,实现向handler发送消息,更新派生类的UI。
第三方面,本申请提供一种计算机存储介质,采用如下的技术方案:
一种计算机可读存储介质,存储有能够被处理器加载并执行上述任一种基于JAVA的UI更新方法的计算机程序。
本申请至少具有下列有益效果:
1.使用保护级别的第一更新接口,利用第一更新接口作为数据传递的信息通道,再将所有使用handler处理的UI形成封装类esnHandler,信息通道内的数据结合封装类esnHandler,实现向handler发送消息,更新派生类的UI,在需要更新UI时无需重复编写调用handler处理UI的代码,大大地提高了编程效率,步骤减少,逻辑变得清晰简单,也降低了错误率;
2.在重写前使用@Override作为注释,还能帮助检查是否正确的复写了父类中已有的方法,编译器可以验证@Override下面的方法名是否是父类中所有的,如果没有则报错。
附图说明
图1是本申请基于JAVA的UI更新方法的方法流程示意图。
图2是本申请基于JAVA的UI更新系统的系统结构框图。
附图标记:1、定义接口模块;2、更新初始模块;3、封装处理模块;4、发送数据模块;5、更新UI模块。
具体实施方式
以下结合附图1-2对本申请作进一步详细说明。
下面结合说明书附图对本申请实施例作进一步详细描述。
本申请实施例公开一种基于JAVA的UI更新方法,如图1所示,包括如下步骤:
S1:定义保护级别的更新接口refreshUI。
S2:在更新接口refreshUI内定义初始化函数refresh;
S3:封装所有使用handler处理的UI形成封装类esnHandler。形成封装类esnHandler中,还包括:使用伪代码@Override表示方法重写,重写信息传递函数handleMessage。@Override作为注释,还能帮助检查是否正确的复写了父类中已有的方法,编译器可以验证@Override下面的方法名是否是父类中所有的,如果没有则报错。
信息传递函数handleMessage获取Message新建的第二传递参数,调用信息传递函数handleMessage的父类传入第二传递参数。
将第二传递参数赋值给第一更新接口。
以及,更新第一更新接口。上述方法能实现封装所有的使用handler处理的UI,利用第一更新接口就能实现对handler信息的传输,无需依次重复地在代码中写出所有的使用handler处理的UI,降低了代码量,大大地提高了编程效率。
S4:定义保护级别的发送函数sendRefreshMessage,发送函数sendRefreshMessage获取更新接口refreshUI新建的第一传递参数,并将第一传递参数内的信息使用封装类esnHandler发送至目标线程,目标线程即UI更新主线程。获取消息池中一个闲置的msg。将第一传递参数作为对象赋值入msg中。将msg通过安卓系统内置的消息通道发送至目标线程。实现向handler发送消息,更新派生类的UI。
S5:更新UI:使用更新接口refreshUI新建第一更新接口,为第一更新接口赋值不同的内容,将赋值后第一更新接口传递至发送函数sendRefreshMessage。第一更新接口传递至发送函数sendRefreshMessage后,发送函数sendRefreshMessage会自动执行并更新UI。
上述方法可用JAVA程序语言编程实现,编程后生成的代码运行在安卓系统中,安卓系统运行在智能装置中,智能装置具有触摸显示屏,用户通过触摸显示屏与APP互动,实现UI更新的触发。其中,定义保护级别的更新接口refreshUI的代码如下:
protected interface RefreshUi{void refresh();}。
上述保护级别的接口在需要更新ui的地方实现该接口,并通过sendRefreshMessage 传递进去。
下列代码为向handler发送消息,更新派生类的UI:
protected void sendRefreshMessage(RefreshUi refreshUi){
Message msg=Message.obtain();
msg.obj=refreshUi;
esnHandler.sendMessage(msg);}。
下列代码为封装所有的使用 handler 处理的UI:
@SuppressLint("HandlerLeak")
private Handler esnHandler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
RefreshUi refreshUi= (RefreshUi) msg.obj;
refreshUi.refresh();}}。
实施原理为:使用保护级别的第一更新接口,利用第一更新接口作为数据传递的信息通道,再将所有使用handler处理的UI形成封装类esnHandler,信息通道内的数据结合封装类esnHandler,在需要更新UI时无需重复编写调用handler处理UI的代码,只要更新第一更新接口,然后调用sendRefreshMessage就能实现UI的更新,大大地提高了编程效率,步骤减少,逻辑变得清晰简单,也降低了错误率。
本申请实施例还公开一种基于JAVA的UI更新系统,如图2所示,包括定义接口模块1、更新初始模块2、封装处理模块3、发送数据模块4以及更新UI模块5。
定义接口模块1用于定义保护级别的更新接口refreshUI。
更新初始模块2用于在更新接口refreshUI内定义初始化函数refresh。
封装处理模块3用于封装所有使用handler处理的UI形成封装类esnHandler。封装处理模块3中包括方法表示单元、重写函数单元、参数传递单元、参数赋值单元以及更新接口单元。
方法表示单元用于在重写信息传递函数handleMessage前,使用伪代码@Override表示方法重写。方法表示单元用于注释以及用于帮助检查是否正确的复写了父类中已有的方法,编译器可以验证@Override下面的方法名是否是父类中所有的,如果没有则报错。重写函数单元用于重写信息传递函数handleMessage;参数传递单元用于使信息传递函数handleMessage获取Message新建的第二传递参数,调用信息传递函数handleMessage的父类传入第二传递参数。参数赋值单元用于将第二传递参数赋值给第一更新接口。更新接口单元用于更新第一更新接口。
发送数据模块4用于定义保护级别的发送函数sendRefreshMessage,发送函数sendRefreshMessage获取更新接口refreshUI新建的第一传递参数,并将第一传递参数内的信息使用封装类esnHandler发送至目标线程,目标线程即UI更新主线程。发送数据模块4中还包括获取消息单元、对象赋值单元以及发送消息单元。获取消息单元用于获取消息池中一个闲置的msg。对象赋值单元用于将第一传递参数作为对象赋值入msg中。发送消息单元用于将msg通过安卓系统内置的消息通道发送至目标线程。获取消息单元、对象赋值单元以及发送消息单元实现向handler发送消息,更新派生类的UI。
更新UI模块5用于使用更新接口refreshUI新建第一更新接口,为第一更新接口赋值不同的内容,将赋值后第一更新接口传递至发送函数sendRefreshMessage。
实施原理为:上述模块及其对应的功能可用JAVA程序语言编程实现,编程后生成的代码运行在内置有安卓系统的智能设备中。使用定义接口模块1定义保护级别的第一更新接口,更新初始模块2初始化refresh,利用第一更新接口作为数据传递的信息通道,封装处理模块3输出封装类esnHandler,更新UI模块5使用发送数据模块4结合封装类esnHandler,在需要更新UI时无需重复编写调用handler处理UI的代码,大大地提高了编程效率,步骤减少,逻辑变得清晰简单,也降低了错误率。使用封装处理模块3实现封装所有的使用handler处理的UI,利用第一更新接口就能实现对handler信息的传输,无需依次重复地在代码中写出所有的使用handler处理的UI,降低了代码量,大大地提高了编程效率。
本申请实施例还公开一种计算机可读存储介质,存储有能够被处理器加载并执行上述记载的基于JAVA的UI更新方法的计算机程序。
以上均为本申请的较佳实施例,并非依此限制本申请的保护范围,故:凡依本申请的结构、形状、原理所做的等效变化,均应涵盖于本申请的保护范围之内。

Claims (9)

1.一种基于JAVA的UI更新方法,其特征在于:包括如下步骤:
定义保护级别的更新接口refreshUI;
在更新接口refreshUI内定义初始化函数refresh;
封装所有使用handler处理的UI形成封装类esnHandler;
定义保护级别的发送函数sendRefreshMessage,发送函数sendRefreshMessage获取所述更新接口refreshUI新建的第一传递参数,并将所述第一传递参数内的信息使用封装类esnHandler发送至目标线程,目标线程即UI更新主线程;以及,
更新UI:使用更新接口refreshUI新建第一更新接口,为所述第一更新接口赋值不同的内容,将赋值后所述第一更新接口传递至所述发送函数sendRefreshMessage。
2.根据权利要求1所述的方法,其特征在于:所述形成封装类esnHandler中,还包括:
重写信息传递函数handleMessage;
信息传递函数handleMessage获取Message新建的第二传递参数,调用信息传递函数handleMessage的父类传入所述第二传递参数;
将所述第二传递参数赋值给所述第一更新接口;以及,
更新所述第一更新接口。
3.根据权利要求2所述的方法,其特征在于:在重写信息传递函数handleMessage前,使用伪代码@Override表示方法重写。
4.根据权利要求1所述的方法,其特征在于:所述将所述第一传递参数内的信息通过安卓系统内置的消息通道发送至目标线程中,还包括:
获取消息池中一个闲置的msg;
将所述第一传递参数作为对象赋值入所述msg中;以及,
将msg通过安卓系统内置的消息通道发送至目标线程。
5.一种基于JAVA的UI更新系统,其特征在于:包括如下模块:
定义接口模块(1),用于定义保护级别的更新接口refreshUI;
更新初始模块(2),用于在更新接口refreshUI内定义初始化函数refresh;
封装处理模块(3),用于封装所有使用handler处理的UI形成封装类esnHandler;
发送数据模块(4),用于定义保护级别的发送函数sendRefreshMessage,发送函数sendRefreshMessage获取所述更新接口refreshUI新建的第一传递参数,并将所述第一传递参数内的信息使用封装类esnHandler发送至目标线程,目标线程即UI更新主线程;以及,
更新UI模块(5),用于使用更新接口refreshUI新建第一更新接口,为所述第一更新接口赋值不同的内容,将赋值后所述第一更新接口传递至所述发送函数sendRefreshMessage。
6.根据权利要求5所述的系统,其特征在于:所述封装处理模块(3)中包括:
重写函数单元,用于重写信息传递函数handleMessage;
参数传递单元,用于使信息传递函数handleMessage获取Message新建的第二传递参数,调用信息传递函数handleMessage的父类传入所述第二传递参数;
参数赋值单元,用于将所述第二传递参数赋值给所述第一更新接口;以及,
更新接口单元,用于更新所述第一更新接口。
7.根据权利要求6所述的系统,其特征在于:所述封装处理模块(3)中包括:
方法表示单元,用于在重写信息传递函数handleMessage前,使用伪代码@Override表示方法重写。
8.根据权利要求5所述的系统,其特征在于:所述发送数据模块(4)中还包括:
获取消息单元,用于获取消息池中一个闲置的msg;
对象赋值单元,用于将所述第一传递参数作为对象赋值入所述msg中;以及,
发送消息单元,用于将msg通过安卓系统内置的消息通道发送至目标线程。
9.一种计算机可读存储介质,其特征在于:存储有能够被处理器加载并执行如权利要求1至4中任一种方法的计算机程序。
CN202011150967.XA 2020-10-24 2020-10-24 基于java的ui更新方法、系统及其存储介质 Pending CN112214234A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011150967.XA CN112214234A (zh) 2020-10-24 2020-10-24 基于java的ui更新方法、系统及其存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011150967.XA CN112214234A (zh) 2020-10-24 2020-10-24 基于java的ui更新方法、系统及其存储介质

Publications (1)

Publication Number Publication Date
CN112214234A true CN112214234A (zh) 2021-01-12

Family

ID=74055310

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011150967.XA Pending CN112214234A (zh) 2020-10-24 2020-10-24 基于java的ui更新方法、系统及其存储介质

Country Status (1)

Country Link
CN (1) CN112214234A (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107368377A (zh) * 2017-06-30 2017-11-21 武汉斗鱼网络科技有限公司 一种Android应用程序中网络请求处理方法及装置
CN108874494A (zh) * 2018-06-22 2018-11-23 武汉斗鱼网络科技有限公司 一种Android系统中的消息处理方法及Android电子设备
CN110647405A (zh) * 2018-06-27 2020-01-03 北京京东尚科信息技术有限公司 系统消息处理方法、电子设备和计算机可读存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107368377A (zh) * 2017-06-30 2017-11-21 武汉斗鱼网络科技有限公司 一种Android应用程序中网络请求处理方法及装置
CN108874494A (zh) * 2018-06-22 2018-11-23 武汉斗鱼网络科技有限公司 一种Android系统中的消息处理方法及Android电子设备
CN110647405A (zh) * 2018-06-27 2020-01-03 北京京东尚科信息技术有限公司 系统消息处理方法、电子设备和计算机可读存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
PENGUIN: "Android:Runnable多线程回调Callback更新UI时不工作的问题", 《HTTPS://WWW.POLARXIONG.COM/ARCHIVES/ANDROID-RUNNABLE多线程回调CALLBACK更新UI时不工作的问题.HTML》 *
小小米乐: "Android new Handler的两种写法与区别", 《HTTPS://BLOG.CSDN.NET/ YANWENYUAN0304/ARTICLE/DETAIL/105794732》 *
王明珠: "《移动应用开发任务式驱动教程 基于Android Studio》", 31 August 2017 *

Similar Documents

Publication Publication Date Title
US8978023B2 (en) Canonical mechanism for securely assembling features into a mobile application
CN109697060B (zh) 视频特效系统及其生成方法、装置、设备和存储介质
CN111176626B (zh) 跨编程语言的代码调用方法及装置、介质、设备
US11853820B2 (en) Cross-process communication method, apparatus, and device
WO2018161813A1 (zh) 一种资源加载方法及装置
CN110134378A (zh) 应用程序创建方法及装置、计算机设备及存储介质
CN106844153B (zh) 应用程序运行监控方法、装置以及终端
CN112711408A (zh) 基于Vue组件化的可视化配置渲染方法、系统、终端
JP7315786B2 (ja) スマートコントラクトのクライアントプログラムの生成方法、システム、機器、及び媒体
US8549506B2 (en) Resumable methods
CN111740948B (zh) 数据包发布方法、动态更新方法、装置、设备及介质
Caracas et al. Mote runner: A multi-language virtual machine for small embedded devices
CN103530165B (zh) 一种应用于物联网行业的java解决方案
CN102495757A (zh) 一种适用于java远程调用对象传输的优化方法、装置
CN112214234A (zh) 基于java的ui更新方法、系统及其存储介质
CN102999371B (zh) 基于Lua脚本的人机界面开发方法及系统
CN110457013B (zh) 程序组件配置装置及方法
CN110032390B (zh) 一种实现多机型共升级包的方法、存储介质及智能终端
CN106775608B (zh) 独立系统进程的实现方法和装置
CN107368377B (zh) 一种Android应用程序中网络请求处理方法及装置
CN113672445A (zh) 记录目标程序运行状态信息的方法以及电子设备
CN108536523B (zh) 浏览器内ActiveX嵌套Flash正常交互的方法
CN115328679A (zh) 异构函数库的自动化集成方法、计算设备及其系统
CN114281335A (zh) 视图生成方法和相关设备
US20110321009A1 (en) Implementing encryption via aspect oriented programming

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20210112