一种数据处理方法、装置及移动终端的制作方法

文档序号:6487836阅读:131来源:国知局
一种数据处理方法、装置及移动终端的制作方法
【专利摘要】本发明实施例公开了一种数据处理方法、装置及移动终端。其中的数据处理方法可以包括:接收到数据请求时,在当前程序的子线程中进行数据计算;根据数据计算结果,在当前程序的主线程中加载所请求的数据;显示所述加载的所请求的数据。本发明可保证UI线程的畅顺,保证系统的稳定性,保证UI界面的显示效果。
【专利说明】一种数据处理方法、装置及移动终端
【技术领域】
[0001]本发明涉及移动通信【技术领域】,具体涉及移动终端【技术领域】,尤其涉及一种数据处理方法、装置及移动终端。
【背景技术】
[0002]目前,移动终端中的数据处理过程在主线程(即n(User Interface,用户界面)线程)中执行,例如:如果用户请求查看移动终端某文件夹中的数据,移动终端在接收到用户的数据请求时,在程序的UI线程中,遍历所请求的文件夹中的数据,并创建每个数据对应的数据对象,该数据对象为用于n界面进行显示的对象,可以包括数据的名称、大小、修改时间等信息;对数据对象进行排序,并加载该数据对象至n界面,Ui界面中则显示用户所请求查看该文件夹的数据。上述技术中,由于数据处理的流程均运行在程序的主线程,即UI线程中,如果所请求的数据量较大,数据处理流程将会繁琐且耗时,导致n线程出现阻塞,从而导致移动终端系统的卡顿,影响n界面的显示。

【发明内容】

[0003]本发明实施例提供一种数据处理方法、装置及移动终端,可保证n线程的畅顺,保证系统的稳定性,保证n界面的显示效果。
[0004]本发明第一方面提供了一种数据处理方法,包括:
[0005]接收到数据请求时,在当前程序的子线程中进行数据计算;
[0006]根据数据计算结果,在当前程序的主线程中加载所请求的数据;
[0007]显示所述加载的所请求的数据。
[0008]其中,所述在当前程序的子线程进行数据计算,包括:
[0009]启动当前程序的子线程;
[0010]在当前程序的子线程中遍历所请求的数据;
[0011]根据遍历获得的数据,创建数据对象;
[0012]对所述数据对象进行排序,获得计算结果,所述计算结果包括排序后的数据对象。
[0013]其中,所述在当前程序的子线程中遍历所请求的数据的同时,还包括:
[0014]启动计时,当计时时间达到预设阀值时,判断所述遍历过程是否结束;
[0015]如果判断结果为是,则停止计时;
[0016]如果判断结果为否,则调用当前程序的主线程,并在当前程序的主线程中输出进度提示信息。
[0017]其中,所述在当前程序的主线程中输出进度提示信息之后,还包括:如果接收到数据取消指令,则停止当前程序的子线程中的数据计算过程。
[0018]其中,所述根据数据计算结果,在当前程序的主线程中加载所请求的数据,包括:
[0019]调用当前程序的主线程获取当前程序的子线程中的计算结果,在当前程序的主线程中更新当前程序的n界面。[0020]其中,所述显示所述加载的所请求的数据,包括:在当前程序的n界面上显示所述计算结果。
[0021]本发明第二方面提供了一种数据处理装置,包括:
[0022]子线程控制模块,用于接收到数据请求时,在当前程序的子线程中进行数据计算;
[0023]主线程控制模块,用于根据数据计算结果,在当前程序的主线程中加载所请求的数据;
[0024]数据处理模块,用于显示所述加载的所请求的数据。
[0025]其中,所述子线程控制模块包括:
[0026]启动单元,用于启动当前程序的子线程;
[0027]遍历单元,用于在当前程序的子线程中遍历所请求的数据;
[0028]创建单元,用于根据遍历获得的数据,创建数据对象;
[0029]排序单元,用于对所述数据对象进行排序,获得计算结果,所述计算结果包括排序后的数据对象。
[0030]其中,所述子线程控制模块还包括:
[0031]计时单元,用于启动计时;
[0032]判断单元,用于当计时时间达到预设阀值时,判断所述遍历过程是否结束;
[0033]控制单元,用于如果判断结果为是,则通知所述计时单元停止计时;或者,用于如果判断结果为否,则通知所述主线程控制模块调用当前程序的主线程,并在当前程序的主线程中输出进度提示信息
[0034]其中,所述控制单元还用于在当前程序的主线程中输出进度提示信息之后,如果接收到数据取消指令,则停止当前程序的子线程中的数据计算过程。
[0035]其中,所述主线程控制模块包括:
[0036]调用单元,用于调用当前程序的主线程;
[0037]获取单元,用于获取当前程序的子线程的计算结果;
[0038]更新单元,用于在当前程序的主线程中更新当前程序的UI界面。
[0039]其中,所述数据处理模块具体用于在当前程序的UI界面上显示所述计算结果。
[0040]本发明第三方面提供了一种移动终端,包括上述的数据处理装置。
[0041]上述可知,本发明实施例在数据处理过程中,将相对繁琐且耗时的数据计算过程运行在程序的子线程中,而在程序的主线程中仅进行数据的加载和显示,多线程工作模式可以提高数据处理效率,即使在请求的数据量较大时,也不会造成UI线程出现阻塞,从而保证了 n线程的畅顺,保证了系统的稳定性,保证了 n界面的显示效果。
【专利附图】

【附图说明】
[0042]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0043]图1为本发明实施例提供的一种数据处理方法的流程图;[0044]图2为图1所示步骤SlOl的一个实施例的流程图;
[0045]图3为图1所示步骤SlOl的另一个实施例的流程图;
[0046]图4为图1所示步骤S102的实施例的流程图;
[0047]图5为本发明实施例提供的一种数据处理装置的结构示意图;
[0048]图6为图5所示子线程控制模块的一个实施例的结构示意图;
[0049]图7为图5所示子线程控制模块的另一个实施例的结构示意图;
[0050]图8为图5所示主线程控制模块的实施例的结构示意图。
【具体实施方式】
[0051]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0052]本发明实施例中,移动终端可以包括:平板电脑、手机、智能手机、电子阅读器、笔记本电脑等终端设备。移动终端的系统可以包括=Android (安卓,一种操作系统)系统、iOS(一种操作系统)系统、Windows Phone (一种操作系统)系统等操作系统。
[0053]本发明实施例中,一个程序包括至少一个线程。如果程序仅包括一个线程,该线程为主线程,或称UI线程,主线程在程序运行时由系统自动创建,主要负责UI界面的显示、更新和控件交互等。如果程序包括一个以上线程,则其中一个为主线程,其他线程为子线程。
[0054]本发明实施例在数据处理过程中,将相对繁琐且耗时的数据计算过程运行在程序的子线程中,而在程序的主线程中仅进行数据的加载和显示,多线程工作模式可以提高数据处理效率,即使在请求的数据量较大时,也不会造成UI线程出现阻塞,从而保证了 UI线程的畅顺,保证了系统的稳定性,保证了 UI界面的显示效果。
[0055]下面将结合附图1-4,对本发明实施例提供的数据处理方法进行详细介绍。
[0056]请参见图1,为本发明实施例提供的一种数据处理方法的流程图;该方法可以包括以下步骤SlOl-步骤S103。
[0057]S101,接收到数据请求时,在当前程序的子线程中进行数据计算。
[0058]其中,所述数据请求可以为来自用户的数据请求,例如:如果用户请求查看移动终端某文件夹中的数据,则可以发送数据请求,本步骤中,接收来自用户的数据请求,并在移动终端当前程序的子线程中对所请求的数据进行计算。
[0059]本发明实施例中,在当前程序的子线程中进行数据计算的过程可以包括以下两种可行的实施方式。
[0060]在第一种可行的实施方式中,请一并参见图2,为图1所示步骤SlOl的一个实施例的流程图;该步骤SlOl可包括以下步骤SllOl-步骤S1104。
[0061]SllOl,启动当前程序的子线程。本步骤中,该子线程可以为当前程序包括的任一个子线程。
[0062]S1102,在当前程序的子线程中遍历所请求的数据。
[0063]本步骤中,可以通过遍历算法,在当前程序的子线程中遍历所请求的数据,其中,遍历算法可以为ListFilesO算法、递归算法、非递归算法等等,例如:数据请求中请求获取某文件夹下的数据,则可以通过ListFiles ()算法,获取该文件夹下的所有数据。
[0064]s 1103,根据遍历获得的数据,创建数据对象。
[0065]其中,数据对象为用于n界面进行显示的对象,可以包括数据的名称、大小、修改时间等信息。可选地,获得该数据对象后,可以在本地缓存中存储所述数据对象。
[0066]S1104,对所述数据对象进行排序,获得计算结果,所述计算结果包括排序后的数据对象。
[0067]本步骤中,可以按照数据的信息对数据对象进行排序,例如:可以按照数据的修改时间对数据对象进行排序,或者可以按照数据的大小对数据对象进行排序,或者可以按照数据的名称对数据对象进行排序。本步骤对数据对象进行排序,可便于n界面对数据对象的显示,方便用户对数据的浏览。
[0068]在第二种可行的实施方式中,请参见图3,为图1所示步骤SlOl的另一个实施例的流程图;该步骤SlOl可以步骤Sllll-步骤S1120。
[0069]sllll,启动当前程序的子线程。
[0070]S1112,在当前程序的子线程中遍历所请求的数据。
[0071]本实施方式中,步骤sllll_slll2与图2所示实施例中步骤sll01_sll02相同,在此不赘述。
[0072]slll3,启动计时。
[0073]本实施方式中,步骤Si 113和步骤Si 112可以同步执行,即当遍历开始时,则可启动计时。
[0074]S1114,当计时时间达到预设阀值时,判断所述遍历过程是否结束;如果判断结果为是,则转入slll5 ;否则,转入S1118。
[0075]Si 115,停止计时。
[0076]步骤S1113-S1115中,可以采用定时器进行计时。由于遍历过程比较复杂,如果所请求的数据量较大,则遍历过程耗费的时间较长,为了提高互动性,本实施方式可以预先设置时间阀值,该时间阀值可根据实际需要用户等待的时间进行设定,例如:可以根据经验,将该时间阀值设置为500ms。如果定时器未达到预设阀值时,遍历过程已结束,则表明针对所请求的数据的遍历过程较快,响应时间较快,则可取消定时器停止计时。
[0077]s 1116,根据遍历获得的数据,创建数据对象。
[0078]S1117,对所述数据对象进行排序,获得计算结果,所述计算结果包括排序后的数据对象;之后,转入结束。
[0079]本实施方式中,步骤slll6_slll7与图2所示实施例中步骤sll03_sll04相同,在此不赘述。
[0080]Si 118,调用当前程序的主线程。
[0081]S1119,在当前程序的主线程中输出进度提示信息。
[0082]步骤slll8-slll9中,如果定时器达到预设阀值时,遍历过程还未结束,则表明所请求的数据量较大,针对所请求的数据的遍历过程较慢,响应时间较慢,为了提高互动性,则可调用当前程序的主线程,在当前程序的主线程中输出进度提示信息,提示用户数据正在加载,提醒用户等待。具体实现中,该进度提示信息可以采用进度条的形式进行展示,可以直观的体现数据计算过程。[0083]S1120,如果接收到数据取消指令,则停止当前程序的子线程中的数据计算过程。
[0084]本步骤为可选步骤,当步骤S1119,在当前程序的主线程中输出进度提示信息之后,如果用户继续等待,则完成整个数据的处理过程;如果用户不想继续等待,则可执行取消操作,即发出数据取消指令,取消数据请求的过程。则本步骤中,在接收到数据取消指令,则停止当前程序的子线程中的数据计算过程;之后,退出当前程序的子线程,由当前程序的主线程继续执行程序的正常运行。
[0085]S102,根据数据计算结果,在当前程序的主线程中加载所请求的数据。
[0086]本步骤加载所请求的数据可以为:从本地缓存中加载存储的所请求的数据对应的数据对象。
[0087]在本发明的一种可行的实施方式中,请一并参见图4,为图1所示步骤S102的实施例的流程图;该步骤S102可以包括以下步骤sl201-步骤sl203。
[0088]S1201,调用当前程序的主线程。
[0089] S1202,获取当前程序的子线程中的计算结果。
[0090]在当前程序的子线程中进行数据计算获得计算结果后,可由当前程序的子线程将该计算结果返回给当前程序的主线程。其中,该计算结果可以包括排序后获得的数据对象。
[0091]S1203,在当前程序的主线程中更新当前程序的UI界面。
[0092]本步骤中,更新当前程序的n界面的过程,实际上是对数据的显示做准备,即在UI界面加载排序后的数据对象,方便后续对数据的显示。
[0093]S103,显示所述加载的所请求的数据。
[0094]本步骤具体可以在当前程序的n界面中显示所加载的所请求数据,则用户可以在当前程序的UI界面中查看所请求的数据的信息。
[0095]需要说明的是,本发明实施例中,当前程序指移动终端当前运行的程序,其可以为移动终端系统中任一正在运行的程序。
[0096]上述可知,本发明实施例在数据处理过程中,将相对繁琐且耗时的数据计算过程运行在程序的子线程中,而在程序的主线程中仅进行数据的加载和显示,多线程工作模式可以提高数据处理效率,即使在请求的数据量较大时,也不会造成n线程出现阻塞,从而保证了 n线程的畅顺,保证了系统的稳定性,保证了 n界面的显示效果。
[0097]下面将结合附图5-附图8,对本发明实施例提供的数据处理装置进行详细介绍。需要说明的是,下述的装置可以为移动终端中的数据管理器或文件管理器等装置。下述的装置可以应用于上述的方法中。
[0098]请参见图5,为本发明实施例提供的一种数据处理装置的结构示意图;该装置可以包括:子线程控制模块101、主线程控制模块102和数据处理模块103。
[0099]子线程控制模块101,用于接收到数据请求时,在当前程序的子线程中进行数据计算。
[0100]其中,所述数据请求可以为来自用户的数据请求,例如:如果用户请求查看移动终端某文件夹中的数据,则可以发送数据请求,所述子线程控制模块101接收来自用户的数据请求,并在移动终端当前程序的子线程中对所请求的数据进行计算。
[0101]主线程控制模块102,用于根据数据计算结果,在当前程序的主线程中加载所请求的数据。[0102]数据处理模块103,用于显示所述加载的所请求的数据。
[0103]下面将对图5所示实施例中的各模块进行详细介绍。
[0104]请参见图6,为图5所示子线程控制模块的一个实施例的结构示意图;该子线程控制模块101可以包括:启动单元1101、遍历单元1102、创建单元1103和排序单元1104。
[0105]启动单元1101,用于启动当前程序的子线程。
[0106]遍历单元1102,用于在当前程序的子线程中遍历所请求的数据。
[0107]所述遍历单元1102可以通过遍历算法,在当前程序的子线程中遍历所请求的数据,其中,遍历算法可以为ListFilesO算法、递归算法、非递归算法等等。
[0108]创建单元1103,用于根据遍历获得的数据,创建数据对象。
[0109]其中,数据对象为用于n界面进行显示的对象,可以包括数据的名称、大小、修改时间等信息。可选地,获得该数据对象后,可以在移动终端本地缓存中存储所述数据对象。
[0110]排序单元1104,用于对所述数据对象进行排序,获得计算结果,所述计算结果包括排序后的数据对象。
[0111]所述排序单元1104对数据对象进行排序,可便于UI界面对数据对象的显示,方便用户对数据的浏览。
[0112]请参见图7,为图5所示子线程控制模块的另一个实施例的结构示意图;该子线程控制模块101可以包括:启动单元1101、遍历单元1102、创建单元1103、排序单元1104、计时单元1105、判断单元1106和控制单元1107。其中,启动单元1101、遍历单元1102、创建单元1103和排序单元1104可以参见图6所示实施例中的相关描述,在此不赘述。
[0113]计时单元1105,用于启动计时。
[0114]判断单元1106,用于当计时时间达到预设阀值时,判断所述遍历过程是否结束。
[0115]控制单元1107,用于如果判断结果为是,则通知所述计时单元1105停止计时;或者,用于如果判断结果为否,则通知所述主线程控制模块102调用当前程序的主线程,并在当前程序的主线程中输出进度提示信息
[0116]可选地,所述控制单元1107还用于在当前程序的主线程中输出进度提示信息之后,如果接收到数据取消指令,则停止当前程序的子线程中的数据计算过程。
[0117]请参见图8,为图5所示主线程控制模块的实施例的结构示意图;该主线程控制模块102可以包括:调用单元1201、获取单元1202和更新单元1203。
[0118]调用单元1201,用于调用当前程序的主线程。
[0119]获取单元1202,用于获取当前程序的子线程的计算结果。
[0120]在当前程序的子线程中进行数据计算获得计算结果后,可由当前程序的子线程将该计算结果返回给当前程序的主线程,所述获取单元1202则获取当前程序的子线程所返回的计算结果。其中,该计算结果可以包括排序后获得的数据对象。
[0121]更新单元1203,用于在当前程序的主线程中更新当前程序的n界面。
[0122]所述更新单元1203更新当前程序的UI界面的过程,实际上是对数据的显示做准备,即在n界面加载排序后的数据对象,方便后续对数据的显示。所述数据处理模块103具体用于在当前程序的UI界面上显示所述计算结果。
[0123]上述可知,本发明实施例在数据处理过程中,将相对繁琐且耗时的数据计算过程运行在程序的子线程中,而在程序的主线程中仅进行数据的加载和显示,多线程工作模式可以提高数据处理效率,即使在请求的数据量较大时,也不会造成n线程出现阻塞,从而保证了 n线程的畅顺,保证了系统的稳定性,保证了 n界面的显示效果。
[0124]本发明实施例还公开了一种移动终端,该移动终端可以包括数据处理装置,该数据处理装置的结构和功能可以参见图5-图8任一实施例中的相关说明,在此不赘述。可以理解的是,本发明实施例的移动终端,也可以应用于图1-图4任一实施例所示的方法中。
[0125]上述可知,本发明实施例在数据处理过程中,将相对繁琐且耗时的数据计算过程运行在程序的子线程中,而在程序的主线程中仅进行数据的加载和显示,多线程工作模式可以提高数据处理效率,即使在请求的数据量较大时,也不会造成UI线程出现阻塞,从而保证了 n线程的畅顺,保证了系统的稳定性,保证了 n界面的显示效果。
[0126]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random AccessMemory, RAM)等。
[0127]以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
【权利要求】
1.一种数据处理方法,其特征在于,包括: 接收到数据请求时,在当前程序的子线程中进行数据计算; 根据数据计算结果,在当前程序的主线程中加载所请求的数据; 显示所述加载的所请求的数据。
2.如权利要求1所述的方法,其特征在于,所述在当前程序的子线程进行数据计算,包括: 启动当前程序的子线程; 在当前程序的子线程中遍历所请求的数据; 根据遍历获得的数据,创建数据对象; 对所述数据对象进行排序,获得计算结果,所述计算结果包括排序后的数据对象。
3.如权利要求2所述的方法,其特征在于,所述在当前程序的子线程中遍历所请求的数据的同时,还包括: 启动计时,当计时时间达到预设阀值时,判断所述遍历过程是否结束; 如果判断结果为是,则停止计时; 如果判断结果为否,则调用当前程序的主线程,并在当前程序的主线程中输出进度提不f目息。
4.如权利要求3所述的方法,其特征在于,所述在当前程序的主线程中输出进度提示信息之后,还包括: 如果接收到数据取消指令,则停止当前程序的子线程中的数据计算过程。
5.如权利要求1-4任一项所述的方法,其特征在于,所述根据数据计算结果,在当前程序的主线程中加载所请求的数据,包括: 调用当前程序的主线程获取当前程序的子线程中的计算结果,在当前程序的主线程中更新当前程序的用户界面n界面。
6.如权利要求5所述的方法,其特征在于,所述显示所述加载的所请求的数据,包括: 在当前程序的UI界面上显示所述计算结果。
7.一种数据处理装置,其特征在于,包括: 子线程控制模块,用于接收到数据请求时,在当前程序的子线程中进行数据计算; 主线程控制模块,用于根据数据计算结果,在当前程序的主线程中加载所请求的数据; 数据处理模块,用于显示所述加载的所请求的数据。
8.如权利要求7所述的装置,其特征在于,所述子线程控制模块,包括: 启动单元,用于启动当前程序的子线程; 遍历单元,用于在当前程序的子线程中遍历所请求的数据; 创建单元,用于根据遍历获得的数据,创建数据对象; 排序单元,用于对所述数据对象进行排序,获得计算结果,所述计算结果包括排序后的数据对象。
9.如权利要求8所述的装置,其特征在于,所述子线程控制模块还包括: 计时单元,用于启动计时; 判断单元,用于当计时时间达到预设阀值时,判断所述遍历过程是否结束;控制单元,用于如果判断结果为是,则通知所述计时单元停止计时;或者,用于如果判断结果为否,则通知所述主线程控制模块调用当前程序的主线程,并在当前程序的主线程中输出进度提示信息
10.如权利要求9所述的装置,其特征在于: 所述控制单元还用于在当前程序的主线程中输出进度提示信息之后,如果接收到数据取消指令,则停止当前程序的子线程中的数据计算过程。
11.如权利要求7-10任一项所述的装置,其特征在于,所述主线程控制模块包括: 调用单元,用于调用当前程序的主线程; 获取单元,用于获取当前程序的子线程的计算结果; 更新单元,用于在当前程序的主线程中更新当前程序的UI界面。
12.如权利要求11所述的装置,其特征在于,所述数据处理模块具体用于在当前程序的UI界面上显示所述计算结果。
13.—种移动终端,其特征在于,包括上述权利要求7-12任一项所述的数据处理装置。
【文档编号】G06F9/46GK103593231SQ201210288779
【公开日】2014年2月19日 申请日期:2012年8月14日 优先权日:2012年8月14日
【发明者】肖曦 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1