CN105955567B - 用户界面和进度条的显示方法及装置 - Google Patents

用户界面和进度条的显示方法及装置 Download PDF

Info

Publication number
CN105955567B
CN105955567B CN201610251591.9A CN201610251591A CN105955567B CN 105955567 B CN105955567 B CN 105955567B CN 201610251591 A CN201610251591 A CN 201610251591A CN 105955567 B CN105955567 B CN 105955567B
Authority
CN
China
Prior art keywords
progress bar
progress
library file
interface
consuming task
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.)
Active
Application number
CN201610251591.9A
Other languages
English (en)
Other versions
CN105955567A (zh
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.)
Yuanxin Information Technology Group Co ltd
Original Assignee
Yuanxin Technology
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 Yuanxin Technology filed Critical Yuanxin Technology
Priority to CN201610251591.9A priority Critical patent/CN105955567B/zh
Publication of CN105955567A publication Critical patent/CN105955567A/zh
Application granted granted Critical
Publication of CN105955567B publication Critical patent/CN105955567B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本发明实施例提供了用户界面和进度条的显示方法及装置,所述方法包括:将进度条库文件加载到主线程中,并由所述主线程显示用户界面;检测到耗时任务时,创建工作线程执行所述耗时任务;由所述工作线程调用所述进度条库文件,对所述耗时任务的进度条进行更新显示。本发明实施例中,工作线程对进度条进行更新显示,突破了传统的仅由主线程对进度条进行更新显示的限制;而且主线程可以继续通过用户界面与用户交互,而不再会因为需要更新显示进度条而阻塞。用户可以继续通过用户界面进行其它操作,大大节省了用户的等待时间,提升了响应用户其它操作的效率,可以提升用户体验。

Description

用户界面和进度条的显示方法及装置
技术领域
本发明涉及用户界面显示技术领域,具体而言,本发明涉及一种用户界面和进度条的显示方法及装置。
背景技术
在我国智能手机、平板电脑、智能电视等智能终端已经广泛普及。
智能终端上通常安装有操作系统。以安卓系统为例,当安装在智能终端的一个程序启动时,通常会启动一个Linux进程和一个主线程。默认的情况下,所有该程序的组件都将在该进程和主线程中运行。主线程主要负责处理与UI(User Interface,用户界面)相关的事件,如用户的按键事件、触摸屏幕事件或者滑动事件等,并把这些事件分发到对应的组件进行处理。UI包括:GUI(Graphical User Interface,图形用户界面)。
当程序需要执行耗时任务时,例如,利用IO(Input Output,输入输出)接口读写大文件、对数据库进行操作、或者进行网络下载等,通常由子线程来执行耗时任务,并且通常需要显示一个对应的进度条来表示耗时任务的执行进度。
现有的用户界面显示方法包括:在主线程中创建一个进度条;由子线程将耗时任务的进度值以消息的方式发送至主线程;由主线程根据接收的消息中的进度值,在用户界面中显示耗时任务对应的进度条。
然而,现有的用户界面显示进度条后,在耗时任务完成之前,用户界面通常无法对用户的输入进行响应;也就是说,在此期间用户通常无法通过用户界面对程序进行操作,从而容易导致用户体验不佳。
发明内容
本发明针对现有方式的缺点,提出一种用户界面和进度条的显示方法及装置,用以解决现有技术存在用户界面显示进度条的过程中无法响应用户输入的问题。
本发明的实施例根据一个方面,提供了一种用户界面和进度条的显示方法,包括:
将进度条库文件加载到主线程中,并由所述主线程显示用户界面;
检测到耗时任务时,创建工作线程执行所述耗时任务;
由所述工作线程调用所述进度条库文件,对所述耗时任务的进度条进行更新显示。
较佳地,所述调用所述进度条库文件,对所述耗时任务的进度条进行更新显示,具体包括:
由所述工作线程确定出所述耗时任务的进度值;
调用所述进度条库文件中涉及进度条的接口函数,根据所述进度值,在进度条界面中更新显示所述耗时任务的进度条。
较佳地,所述确定出所述耗时任务的进度值之前,还包括:
由所述工作线程调用所述进度条库文件中的涉及进度条的接口函数,根据预设的初始进度值,在进度条界面中显示所述进度条。
较佳地,所述方法还包括:接收到针对所述进度条界面的操作后,根据该操作对所述进度条界面进行更新显示。
较佳地,所述进度条库文件具体为静态库文件或动态库文件。
本发明的实施例根据另一个方面,还提供了一种用户界面和进度条的显示装置,包括:
用户界面显示模块,用于将进度条库文件加载到主线程中,并由所述主线程显示用户界面;
耗时任务执行模块,用于检测到耗时任务时,创建工作线程执行所述耗时任务;
进度条显示模块,用于由所述工作线程调用所述进度条库文件,对所述耗时任务的进度条进行更新显示。
较佳地,所述进度条显示模块具体用于由所述工作线程确定出所述耗时任务的进度值;调用所述进度条库文件中涉及进度条的接口函数,根据所述进度值,在进度条界面中更新显示所述耗时任务的进度条。
较佳地,所述进度条显示模块还用于在确定出所述耗时任务的进度值之前,由所述工作线程调用所述进度条库文件中的涉及进度条的接口函数,根据预设的初始进度值,在进度条界面中显示所述进度条。
较佳地,所述进度条显示模块还用于接收到针对所述进度条界面的操作后,根据该操作对所述进度条界面进行更新显示。
较佳地,所述进度条库文件具体为静态库文件或动态库文件。
本发明实施例中,将进度条库文件加载到主线程中,并由主线程显示用户界面;检测到耗时任务时,创建工作线程执行耗时任务;由工作线程调用进度条库文件,对耗时任务的进度条进行更新显示。可见,本发明实施例中,工作线程调用加载在主线程中的库文件对进度条进行更新显示,突破了传统的仅由主线程(单线程)对进度条进行更新显示的限制;而且,工作线程执行耗时任务并更新显示进度条,分担了主线程的负荷,使得主线程可以继续通过用户界面与用户交互,而不再会因为需要更新显示进度条而阻塞用户界面。也就是说,在耗时任务执行(即进度条更新显示)过程中,用户可以继续通过用户界面进行其它操作,与传统的需等待进度条更新显示完毕才可继续通过用户界面进行其它操作相比,大大节省了用户的等待时间,提升了响应用户其它操作的效率,可以提升用户体验。
而且,本发明实施例中,工作线程未对用户界面进行更新显示等操作,仍由主线程(单线程)对用户界面进行更新显示等操作,因此针对用户界面元素的操作依然是线程安全的。无需针对主线程、工作线程,在程序代码层、框架层上层、框架层下层、系统库层以及系统调用层面,层层加锁。与上述双线程的层层加锁的方案相比,代码编写或者改动的工作量大大减少,整个用户界面涉及的软件系统更加简单、可靠性更高。
进一步,本发明实施例中,仅需要增加进度条库文件,无需对框架层中除系统库的库文件之外的代码进行改动,与改动库文件之外的框架层相比,工作量较小,可靠性更高。既然存在进度条库文件,程序中就无需编写诸如创建进度条等进度条相关的源代码,直接调用进度条库文件即可,程序代码的复杂度大大下降,减少了程序员的工作量,有利于提升程序代码的可靠性。
本发明实施例中的进度条库文件是编译后的二进制文件,与程序的编程语言无关,程序直接调用即可,与双线程层层加锁的方案相比,增强了程序的可移植性和适用范围。
此外,本发明实施例中,进度条库文件相比于程序源代码对程序的影响较低,进度条库文件出现逻辑问题或者语法问题等异常时,容易添加对应的处理方式,不容易导致整个程序的崩溃,有利于提升整个程序的可靠性。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明实施例的用户界面和进度条的显示方法的流程示意图;
图2为本发明实施例的用户界面和进度条的显示装置的内部结构的框架示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,这里所使用的“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(Personal Communications Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global Positioning System,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
本发明的发明人注意到,现有的用户界面显示方法中,通常只允许一个线程操作用户界面元素,包括GUI的界面元素和进度条相关的元素。例如,qt平台的GUI模块和安卓系统的GUI模块都是仅支持单线程操作用户界面元素的。
本发明的发明人经过研究发现,假设采用多线程操作用户界面元素,程序设计非常复杂,而且问题很多。
具体地,多线程需要考虑线程的安全性;目前,通常通过线程之间共享资源的加锁机制,来实现线程的安全性。例如,假设多个线程向同一个用户界面(共享资源)的元素进行操作,最后得到的结果通常是不确定的,容易出现诸如程序崩溃等意外后果。因此,需要在共享同一用户界面的各线程中增设互斥锁,以保证一段时间内只有一个线程对该用户界面的元素进行操作。
然而,本发明的发明人经过研究发现,用户界面的操作显示流程较为复杂。首先,程序接收用户针对用户界面的操作的流程包括:事件输入驱动接收用户输入的操作事件,调用系统库(例如libui库)中的库文件例如(Event hub)将操作事件,从框架层下层传输到框架层上层(例如,android.view.Surface、android.view.View和/或GLSurfaceView等)、从框架层上层传输至程序。
其次,程序显示针对用户界面的操作的流程包括:程序根据操作事件确定出用户界面更新信息,经过框架层上层,传输至框架层下层(例如,Surface JNI),调用系统库中的库文件(例如,Surface)将用户界面更新信息传输至显示驱动(例如FrameBuffer驱动),由显示驱动对用户界面进行显示更新。
因此,对多线程进行加锁,需要在程序代码层、框架层上层、框架层下层、系统库层以及系统调用层面,层层加锁;造成涉及用户界面的整个软件系统非常复杂,很容易出现多种问题。例如,诸如DestoryWindow等函数会失效,导致系统资源无法释放;有时甚至会报内存非法而异常终止程序等等。
而且,机械地设置多线程操作用户界面的元素,不仅需要改动程序的源代码,还需要改动系统框架层中库文件之外的源代码,难度很大,工作量相当巨大,容易出现逻辑错误等,导致程序出现各种问题;程序的可移植非常差,适用面非常窄。
本发明实施例中,将进度条库文件加载到主线程中,并由主线程显示用户界面;检测到耗时任务时,创建工作线程执行耗时任务;由工作线程调用进度条库文件,对耗时任务的进度条进行更新显示。可见,本发明实施例中,工作线程调用加载在主线程中的库文件对进度条进行更新显示,突破了传统的仅由主线程(单线程)对进度条进行更新显示的限制;而且,工作线程执行耗时任务并更新显示进度条,分担了主线程的负荷,使得主线程可以继续通过用户界面与用户交互,而不再会因为需要更新显示进度条而阻塞用户界面。也就是说,在耗时任务执行(即进度条更新显示)过程中,用户可以继续通过用户界面进行其它操作,与传统的需等待进度条更新显示完毕才可继续通过用户界面进行其它操作相比,大大节省了用户的等待时间,提升了响应用户其它操作的效率,可以提升用户体验。
而且,本发明实施例中,工作线程未对用户界面进行更新显示等操作,仍由主线程(单线程)对用户界面进行更新显示等操作,因此针对用户界面元素的操作依然是线程安全的。无需针对主线程、工作线程,在程序代码层、框架层上层、框架层下层、系统库层以及系统调用层面,层层加锁。与上述双线程的层层加锁的方案相比,代码编写或者改动的工作量大大减少,整个用户界面涉及的软件系统更加简单、可靠性更高。
下面结合附图具体介绍本发明实施例的技术方案。
本发明实施例的智能终端可以是智能手机、平板电脑、电子阅读器、PDA等终端设备。
智能终端中安装有操作系统。较佳地,智能终端安装有基于Linux内核的操作系统,包括:传统意义上的Linux操作系统或Unix操作系统,也可以是基于Linux操作系统衍生出来的Android系统、Ubuntu系统等等。
本发明实施例的智能终端中设置有系统的框架层。框架层中包括系统库。在系统库中设置进度条库文件。进度条库文件具体可以为静态库文件或动态库文件。
进度条库文件中包括多个涉及进度条的接口函数。涉及进度条的接口函数可以包括:进度条显示函数、进度条关闭函数、进度条界面设置函数、进度显示范围设置函数、和进度值设置函数等。进度条界面设置函数可以包括:进度条界面尺寸设置函数和进度条界面位置设置函数。
本发明实施例提供的用户界面和进度条的显示方法的流程示意图如图1所示,包括如下步骤:
S101:将进度条库文件加载到主线程中,并由主线程显示用户界面。
具体地,程序启动时,创建主线程,将进度条库文件加载到主线程中;由主线程显示用户界面(User Interface),并对用户针对用户界面的输入进行响应。用户界面可以包括:GUI(Graphical User Interface,图形用户界面)。
较佳地,进度条库文件具体可以为静态库文件或动态库文件。
若进度条库文件为静态库文件,在编译程序源代码时链接进度条库文件的源代码,即将程序的源代码及其链接的进度条库文件的源代码一起进行编译,编译后的程序中包含进度条库文件;当程序启动时,创建进程,该进程中已包括进度条库文件和主线程,将进度条库文件加载到主线程中。
进一步,进度条库文件的源代码可以由符合ANSC(AMERICAN NATIONAL STANDARDSINSTITUT,美国国家标准学会)C标准的语言编写;例如,进度条库文件的源代码可以由符合ANSC C99标准的语言编写。这样的进度条库文件的源代码可以被多种编程语言(例如C、C++、JAVA或者Dephi等等)链接调用。
若进度条库文件为动态库文件,进度条文件独立编译后供动态链接调用;编译后的程序中不包含进度条库文件;当程序启动时,创建进程,该进程中只包含主线程;由主线程动态链接进度条库文件,将进度条库文件加载到主线程中。
更优的,进度条库文件为二进制文件,具有语言无关性,可以支持多种编程语言编写的程序调用进度条库文件。例如,采用C、C++、JAVA或者Dephi语言编写的程序都可以调用进度条库文件。
S102:检测到耗时任务时,创建工作线程执行耗时任务。
具体地,检测到待执行耗时任务时,由主线程创建工作线程执行耗时任务。
耗时任务可以是利用IO(Input Output,输入输出)接口的大文件读写任务、数据库操作任务、或者网络下载任务等等。程序通常需要花费较多的时间(例如,几十秒、几分钟或者几十分钟等等)来执行耗时任务。
由工作线程来执行耗时任务,可以减轻主线程的负荷,可以防止主线程因执行耗时任何而阻塞其它任务,例如阻塞对用户输入的响应。
S103:由工作线程调用进度条库文件,对耗时任务的进度条进行更新显示。
本步骤中,由工作线程确定出耗时任务的进度值。
工作线程调用进度条库文件中涉及进度条的接口函数,根据确定出的耗时任务的进度值,在进度条界面中更新显示耗时任务的进度条。
具体地,工作线程调用进度条库文件中的进度值设置函数、以及进度条显示函数;调用进度值设置函数根据耗时任务的进度值,对进度条界面中的进度条的图像进行更新;调用进度条显示函数,显示进度条界面,并在进度条界面中显示更新后的进度条的图像。进一步,对应更新后的进度条的图像,显示耗时任务的进度值。
较佳地,工作线程在确定出耗时任务的进度值之前,还由工作线程调用进度条库文件中的涉及进度条的接口函数,根据预设的初始进度值,在进度条界面中显示进度条。
具体地,工作线程检测到耗时任务开始时,获取预设的进度条界面参数、进度显示范围参数、以及初始进度值。
其中,进度显示范围参数可以包括:进度显示上限参数和进度显示下限参数;例如,0%为进度显示下限参数,100%为进度显示上限参数。初始进度值可以预设为0%。
本发明实施例支持程序预设进度条相关的参数。可以在程序中预设进度条界面参数、进度显示范围参数和初始进度值;可以在程序启动时将上述预设的参数加载到主线程所在的进程中,本步骤中,由于工作进程与上述预设的参考处于同一进程中,可以直接获取预设的进度条界面参数、进度显示范围参数、以及初始进度值。
本发明实施例支持进度条库文件预设进度条相关的参数。在进度条库文件中预设进度条界面参数、进度显示范围参数和初始进度值;本步骤中,工作线程可以直接从进度条库文件中获取预设的进度条界面参数、进度显示范围参数和初始进度值。
工作线程检测到耗时任务开始时,获取预设的进度条界面参数、进度显示范围参数、以及初始进度值,并调用进度条库文件中的进度条显示函数、进度条界面设置函数、进度显示范围设置函数、和进度值设置函数。
具体地,工作线程调用进度条界面设置函数,根据进度条界面参数,确定出进度条界面及进度条的显示位置和尺寸等参数;调用进度显示范围设置函数,根据进度显示范围参数,确定出进度条的显示范围数值;调用进度值设置函数,根据进度条的显示范围数值和初始进度值,确定出进度条的初始图像(此时通常为未着色或者浅色的进度条图像);调用进度条显示函数,根据确定出的进度条界面的显示位置和尺寸等参数,显示进度条界面,并根据进度条的显示位置和尺寸等参数,在进度条界面中显示进度条的初始图像。进一步,可以对应进度条的初始图像显示初始进度值。
更优的,工作线程显示进度条的初始图像后,可以调用进度值设置函数,根据进度条的显示范围数值、以及实时获取的耗时任务的进度值,对待显示的进度条的图像进行更新(例如进度条中代表进度值的深色块从左往右延伸);调用进度条显示函数,在进度条界面中显示更新后的进度条的图像。进一步,对应更新后的进度条的图像,显示耗时任务的进度值。
更优的,接收到针对进度条界面的操作后,根据该操作对进度条界面进行更新显示。
较佳地,工作线程接收到用户针对进度条界面或进度条的选定和拖曳操作后,根据选定和拖曳操作确定出位移参数;调用进度条界面设置函数,根据位移参数,对进度条界面及进度条的显示位置参数进行更新;调用进度条显示函数,根据更新后的显示位置参数,显示进度条界面及进度条。
较佳地,工作线程接收到用户针对进度条界面或进度条的放大或缩小操作后,根据放大和缩小操作确定出尺寸变化参数;调用进度条界面设置函数,根据尺寸变化参数,对进度条界面及进度条的显示尺寸参数进行更新;调用进度条显示函数,根据更新后的显示尺寸参数,显示进度条界面及进度条。
事实上,当工作线程检测到耗时任务结束后,调用进度条文件中的进度条关闭函数,结束进度条界面和进度条的显示。
本领域技术人员可以理解,上述耗时任务的执行过程中,即进度条从开始显示到结束显示的过程中,耗时任务和对进度条的更新显示操作都由工作线程执行;主线程未执行对进度条的更新显示操作,对进度条的更新显示操作不会阻塞主线程,从而主线程可以一直对用户界面进行显示操作,对通过用户界面接收到的用户输入进行及时得响应,使得用户可以在耗时任务执行过程中,无需等待进度条显示完成,就通过用户界面进行其它操作,提升了人机交互的效率,节省了用户的时间,可以提升用户体验。
基于上述用户界面和进度条的显示方法,本发明实施例还提供了一种用户界面和进度条的显示装置,该装置的内部结构的框架示意图如图2所示,包括:用户界面显示模块201、耗时任务执行模块202和进度条显示模块203。
其中,用户界面显示模块201用于将进度条库文件加载到主线程中,并由主线程显示用户界面。
耗时任务执行模块202用于检测到耗时任务时,创建工作线程执行耗时任务。
进度条显示模块203用于由工作线程调用进度条库文件,对耗时任务的进度条进行更新显示。
具体地,进度条显示模块203用于由工作线程确定出耗时任务的进度值;调用进度条库文件中涉及进度条的接口函数,根据进度值,在进度条界面中更新显示耗时任务的进度条。其中,进度条库文件具体可以为静态库文件或动态库文件。
较佳地,进度条显示模块203还用于在确定出耗时任务的进度值之前,由工作线程调用进度条库文件中的涉及进度条的接口函数,根据预设的初始进度值,在进度条界面中显示进度条。
较佳地,进度条显示模块203还用于接收到针对进度条界面的操作后,根据该操作对进度条界面进行更新显示。
上述用户界面显示模块201、耗时任务执行模块202和进度条显示模块203功能的实现方法,可以参考上述图1所示的流程步骤的具体内容,此处不再赘述。
事实上,本发明实施例智能终端,可以包括本发明实施例的用户界面和进度条的显示装置。
本发明实施例中,将进度条库文件加载到主线程中,并由主线程显示用户界面;检测到耗时任务时,创建工作线程执行耗时任务;由工作线程调用进度条库文件,对耗时任务的进度条进行更新显示。可见,本发明实施例中,工作线程调用加载在主线程中的库文件对进度条进行更新显示,突破了传统的仅由主线程(单线程)对进度条进行更新显示的限制;而且,工作线程执行耗时任务并更新显示进度条,分担了主线程的负荷,使得主线程可以继续通过用户界面与用户交互,而不再会因为需要更新显示进度条而阻塞用户界面。也就是说,在耗时任务执行(即进度条更新显示)过程中,用户可以继续通过用户界面进行其它操作,与传统的需等待进度条更新显示完毕才可继续通过用户界面进行其它操作相比,大大节省了用户的等待时间,提升了响应用户其它操作的效率,可以提升用户体验。
而且,本发明实施例中,工作线程未对用户界面进行更新显示等操作,仍由主线程(单线程)对用户界面进行更新显示等操作,因此针对用户界面元素的操作依然是线程安全的。无需针对主线程、工作线程,在程序代码层、框架层上层、框架层下层、系统库层以及系统调用层面,层层加锁。与上述双线程的层层加锁的方案相比,代码编写或者改动的工作量大大减少,整个用户界面涉及的软件系统更加简单、可靠性更高。
进一步,本发明实施例中,仅需要增加进度条库文件,无需对框架层中除系统库的库文件之外的代码进行改动,与改动库文件之外的框架层相比,工作量较小,可靠性更高。既然存在进度条库文件,程序中就无需编写诸如创建进度条等进度条相关的源代码,直接调用进度条库文件即可,程序代码的复杂度大大下降,减少了程序员的工作量,有利于提升程序代码的可靠性。
本发明实施例中的进度条库文件是编译后的二进制文件,与程序的编程语言无关,程序直接调用即可,与双线程层层加锁的方案相比,增强了程序的可移植性和适用范围。
此外,本发明实施例中,进度条库文件相比于程序源代码对程序的影响较低,进度条库文件出现逻辑问题或者语法问题等异常时,容易添加对应的处理方式,不容易导致整个程序的崩溃,有利于提升整个程序的可靠性。
本技术领域技术人员可以理解,本发明包括涉及用于执行本申请中所述操作中的一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备。这些设备具有存储在其内的计算机程序,这些计算机程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随即存储器)、EPROM(Erasable ProgrammableRead-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically ErasableProgrammable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。
本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本发明公开的结构图和/或框图和/或流图的框或多个框中指定的方案。
本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (8)

1.一种用户界面和进度条的显示方法,其特征在于,包括:
将进度条库文件加载到主线程中,并由所述主线程显示用户界面;
检测到耗时任务时,创建工作线程执行所述耗时任务;
由所述工作线程调用所述进度条库文件,对所述耗时任务的进度条进行更新显示;
所述调用所述进度条库文件,对所述耗时任务的进度条进行更新显示,具体包括:
由所述工作线程确定出所述耗时任务的进度值;
调用所述进度条库文件中涉及进度条的接口函数,根据所述进度值,在进度条界面中更新显示所述耗时任务的进度条。
2.根据权利要求1所述的方法,其特征在于,所述确定出所述耗时任务的进度值之前,还包括:
由所述工作线程调用所述进度条库文件中的涉及进度条的接口函数,根据预设的初始进度值,在进度条界面中显示所述进度条。
3.根据权利要求1或2所述的方法,其特征在于,还包括:接收到针对所述进度条界面的操作后,根据该操作对所述进度条界面进行更新显示。
4.根据权利要求3所述的方法,其特征在于,所述进度条库文件具体为静态库文件或动态库文件。
5.一种用户界面和进度条的显示装置,其特征在于,包括:
用户界面显示模块,用于将进度条库文件加载到主线程中,并由所述主线程显示用户界面;
耗时任务执行模块,用于检测到耗时任务时,创建工作线程执行所述耗时任务;
进度条显示模块,用于由所述工作线程调用所述进度条库文件,对所述耗时任务的进度条进行更新显示;
所述进度条显示模块具体用于由所述工作线程确定出所述耗时任务的进度值;调用所述进度条库文件中涉及进度条的接口函数,根据所述进度值,在进度条界面中更新显示所述耗时任务的进度条。
6.根据权利要求5所述的装置,其特征在于,
所述进度条显示模块还用于在确定出所述耗时任务的进度值之前,由所述工作线程调用所述进度条库文件中的涉及进度条的接口函数,根据预设的初始进度值,在进度条界面中显示所述进度条。
7.根据权利要求5或6所述的装置,其特征在于,
所述进度条显示模块还用于接收到针对所述进度条界面的操作后,根据该操作对所述进度条界面进行更新显示。
8.根据权利要求7所述的装置,其特征在于,所述进度条库文件具体为静态库文件或动态库文件。
CN201610251591.9A 2016-04-21 2016-04-21 用户界面和进度条的显示方法及装置 Active CN105955567B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610251591.9A CN105955567B (zh) 2016-04-21 2016-04-21 用户界面和进度条的显示方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610251591.9A CN105955567B (zh) 2016-04-21 2016-04-21 用户界面和进度条的显示方法及装置

Publications (2)

Publication Number Publication Date
CN105955567A CN105955567A (zh) 2016-09-21
CN105955567B true CN105955567B (zh) 2019-07-26

Family

ID=56917840

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610251591.9A Active CN105955567B (zh) 2016-04-21 2016-04-21 用户界面和进度条的显示方法及装置

Country Status (1)

Country Link
CN (1) CN105955567B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107273275B (zh) * 2017-05-09 2020-04-10 武汉斗鱼网络科技有限公司 一种多个数据单元中进度条动态刷新方法及装置
CN110058893B (zh) * 2018-01-16 2022-11-29 视联动力信息技术股份有限公司 一种应用程序控件的展示方法和装置
CN108874556A (zh) * 2018-05-23 2018-11-23 北京五八信息技术有限公司 一种数据交互方法、装置、存储介质及移动终端
CN109918141B (zh) * 2019-03-15 2020-11-27 Oppo广东移动通信有限公司 线程执行方法、装置、终端及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103593231A (zh) * 2012-08-14 2014-02-19 腾讯科技(深圳)有限公司 一种数据处理方法、装置及移动终端
CN104834544A (zh) * 2015-05-04 2015-08-12 广州杰赛科技股份有限公司 数据加载方法及装置
CN105183547A (zh) * 2015-08-13 2015-12-23 青岛海信移动通信技术股份有限公司 一种用户界面的任务调度方法和装置
CN105446755A (zh) * 2014-08-06 2016-03-30 阿里巴巴集团控股有限公司 一种用于Android系统上快速加载Activity数据的方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103593231A (zh) * 2012-08-14 2014-02-19 腾讯科技(深圳)有限公司 一种数据处理方法、装置及移动终端
CN105446755A (zh) * 2014-08-06 2016-03-30 阿里巴巴集团控股有限公司 一种用于Android系统上快速加载Activity数据的方法和装置
CN104834544A (zh) * 2015-05-04 2015-08-12 广州杰赛科技股份有限公司 数据加载方法及装置
CN105183547A (zh) * 2015-08-13 2015-12-23 青岛海信移动通信技术股份有限公司 一种用户界面的任务调度方法和装置

Also Published As

Publication number Publication date
CN105955567A (zh) 2016-09-21

Similar Documents

Publication Publication Date Title
CN105955567B (zh) 用户界面和进度条的显示方法及装置
US9146832B2 (en) Debugging functionality embedded in an application
CN102193823A (zh) 允许元编程的最优增量工作流执行
US20110185282A1 (en) User-Interface-Integrated Asynchronous Validation for Objects
US8910180B2 (en) Interdependent task management by executing tasks based on the “for all” task attributes and existence of semaphore in a task dependency chain
US8381176B1 (en) Software build orchestration framework
US20070283352A1 (en) Sub-task mechanism for development of task-based user interfaces
CN101535950A (zh) 软件事务提交次序和冲突管理
US10540524B2 (en) Memory access protection using processor transactional memory support
CN103645901A (zh) 一种基于事件链的用户界面插件化交互方法
JP2011521352A (ja) 動的宣言型アプリケーション記述
US10275234B2 (en) Selective bypass of code flows in software program
US9015619B2 (en) Pop-up panel for multiple messages
WO2022134717A1 (zh) 数据驱动的系统功能加载方法、设备及存储介质
CN110618873A (zh) 一种基于信息系统的数据锁定方法、设备以及系统
CN103500099A (zh) 一种通过扩展点和扩展实现软件快速二次开发的方法
CN113760491A (zh) 一种任务调度系统、方法、设备及存储介质
CN110442419B (zh) Android应用的界面布局方法及装置
US20070006199A1 (en) Methods and apparatus for communicating between multiple levels of software components
US9811335B1 (en) Assigning operational codes to lists of values of control signals selected from a processor design based on end-user software
CN110908644A (zh) 状态节点的配置方法、装置、计算机设备和存储介质
CN113741931B (zh) 软件升级方法、装置、电子设备及可读存储介质
US20120144398A1 (en) Delayed expansion of values in context
CN103164325B (zh) 一种控制编码的方法和装置
CN111881212A (zh) 执行检查点操作的方法、装置、设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20210126

Address after: 101300 room 153, 1 / F, building 17, 16 Caixiang East Road, Nancai Town, Shunyi District, Beijing

Patentee after: Yuanxin Information Technology Group Co.,Ltd.

Address before: 100176 room 2222, building D, building 33, 99 Kechuang 14th Street, Beijing Economic and Technological Development Zone, Beijing

Patentee before: BEIJING YUANXIN SCIENCE & TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20160921

Assignee: Beijing Yuanxin Junsheng Technology Co.,Ltd.

Assignor: Yuanxin Information Technology Group Co.,Ltd.

Contract record no.: X2021110000018

Denomination of invention: Display method and device of user interface and progress bar

Granted publication date: 20190726

License type: Common License

Record date: 20210531

EE01 Entry into force of recordation of patent licensing contract