视图刷新方法和装置制造方法

文档序号:6510270阅读:285来源:国知局
视图刷新方法和装置制造方法
【专利摘要】本发明涉及一种视图刷新方法和装置。该方法包括步骤:获取对视图中列表的刷新请求;根据所述刷新请求将所述列表的刷新任务加入预先建立的队列中;采用预定数量的线程从所述队列中依次提取所述刷新任务进行加载,得到加载所述刷新任务的数据,其中,加载的所述刷新任务的数据采用弱引用存储;根据加载的所述刷新任务的数据刷新所述视图。上述视图刷新方法和装置,因采用预定数量的线程降低了每次刷新任务创建新线程的开销,弱引用存储数据可随时回收占用的内存,降低了内存和CPU等系统资源的占用率,使得页面刷新流畅,且采用队列保证了数据的完整性。
【专利说明】
视图刷新方法和装置

【技术领域】
[0001]本发明涉及网络应用技术,特别是涉及一种视图刷新方法和装置。

【背景技术】
[0002]因移动终端具备的资源不足,性能低下,在移动终端上安装了应用程序,必须考虑应用程序所占用的内存和CPlKCentral Processing Unit,中央处理器)的使用率。将应用程序的图标以列表形式表现是一种常用的方式。列表每滚动一行,需对图标进行批量刷新。传统的刷新方式主要有三种:第一种是直接在主线程中加载图标,图标的引用不做处理,默认使用强引用;第二种是立即开启一条线程独立加载图标,图标的引用不做处理,默认使用强引用;第三种是使用线程池,在加入线程池的任务独立加载图标,图标的引用不做处理,默认使用强引用。其中,强引用是指在Java语言中对象只有在没有其他应用的情况下才会被系统回收。
[0003]然而,发明人经过研究发现,上述三种刷新方式均会使得应用程序占用CPU和内存等系统资源率高,造成刷新页面卡顿,且仅有在系统内存不足时才会回收所占用的资源。


【发明内容】

[0004]基于此,有必要针对传统的列表刷新占用系统资源高,刷新页面卡顿问题,提供一种能降低系统资源占用率且使得页面刷新流畅的视图刷新方法。
[0005]此外,还有必要提供一种能降低系统资源占用率且使得页面刷新流畅的视图刷新
>J-U ρ?α装直。
[0006]一种视图刷新方法,包括步骤:
[0007]获取对视图中列表的刷新请求;
[0008]根据所述刷新请求将所述列表的刷新任务加入预先建立的队列中;
[0009]采用预定数量的线程从所述队列中依次提取所述刷新任务进行加载,得到加载所述刷新任务的数据,其中,加载的所述刷新任务的数据采用弱引用存储;
[0010]根据加载的所述刷新任务的数据刷新所述视图。
[0011]一种视图刷新装置,包括:
[0012]请求获取模块,用于获取对视图中列表的刷新请求;
[0013]添加模块,用于根据所述刷新请求将所述列表的刷新任务加入预先建立的队列中;
[0014]加载模块,用于采用预定数量的线程从所述队列中依次提取所述刷新任务进行加载,得到加载所述刷新任务的数据,其中,加载的所述刷新任务的数据采用弱引用存储;
[0015]刷新模块,用于根据加载的所述刷新任务的数据刷新所述视图。
[0016]上述视图刷新方法和装置,采用预定数量的线程提取队列中的刷新任务进行加载,得到加载数据,然后根据加载的数据刷新视图,且数据采用弱引用存储,因采用预定数量的线程降低了每次刷新任务创建新线程的开销,弱引用存储数据可随时回收占用的内存,降低了内存和CPU等系统资源的占用率,使得页面刷新流畅,且采用队列保证了数据的完整性。

【专利附图】

【附图说明】
[0017]图1为一个实施例中视图刷新方法的流程图;
[0018]图2为另一个实施例中视图刷新方法的流程图;
[0019]图3为另一个实施例中视图刷新方法的流程图;
[0020]图4为一个实施例中视图刷新装置的结构框图;
[0021]图5为另一个实施例中视图刷新装置的结构框图;
[0022]图6为加载模块的内部结构框图;
[0023]图7为一个实施例中视图刷新系统的结构示意图。

【具体实施方式】
[0024]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0025]如图1所示,为一个实施例中视图刷新方法的流程图。该视图刷新方法应用于移动终端上,可占用较少了内存和CPU等系统资源。该移动终端可为手机、个人数字助理或掌上电脑等。该视图刷新方法,包括步骤:
[0026]步骤S102,获取对视图中列表的刷新请求。
[0027]具体的,对视图中列表的刷新请求可通过滑动视图中列表产生,或者滚动视图中的滚动条产生,或者向指定方向(如向左或向右)移动视图中列表产生等。
[0028]步骤S104,根据该刷新请求将该列表的刷新任务加入预先建立的队列中。
[0029]刷新任务可为刷新视图中应用程序的图标,或者刷新视图中图片,或者刷新整个视图页面等。将刷新任务加入预先建立的队列中可保证数据的完整性,防止数据丢失。
[0030]步骤S106,采用预定数量的线程从该队列中依次提取该刷新任务进行加载,得到加载该刷新任务的数据,其中,加载的该刷新任务的数据采用弱引用存储。
[0031]线程是一种比计算机中的进程更小的单位,一个进程可拥有多个线程。该预定数量可包括I个、2个或3个等。本实施例中,采用3个线程同时提取刷新任务,经过实验数据可知采用3个线程同时加载,能够达到最高的效率,且能够有效控制CPU占用高的情况。线程在每个需要加载的刷新任务的页面初始化时创建,在刷新任务的页面销毁时结束,在该页面未销毁期间,线程一直处于等待状态。
[0032]弱引用是指Java中对象在任何情况下都有可能被系统回收。本实施例中,刷新任务为刷新应用程序的图标,将图标保存在Map里,以保证图标随时可以被回收。
[0033]步骤S108,根据加载的该刷新任务的数据刷新该视图。
[0034]本实施例中,该刷新任务为刷新应用程序的图标。步骤S108包括:根据该加载的该刷新任务的数据采用FindViewByTag局部刷新该视图。具体的,通过tag (图标)找到对应的view (视图),然后再刷新该view。
[0035]上述视图刷新方法,采用预定数量的线程提取队列中的刷新任务进行加载,得到加载数据,然后根据加载的数据刷新视图,且数据采用弱引用存储,因采用预定数量的线程降低了每次刷新任务创建新线程的开销,弱引用存储数据可随时回收占用的内存,降低了内存和CPU等系统资源的占用率,使得页面刷新流畅,且采用队列保证了数据的完整性。
[0036]如图2所示,为另一个实施例中视图刷新方法的流程图。图2中的视图刷新方法与图1的区别在于:图2中增加了刷新任务的加载位置的优先级,按照优先级从高到低进行加载。该视图刷新方法包括:
[0037]步骤S202,获取对视图中列表的刷新请求。
[0038]步骤S204,根据该刷新请求将该列表的刷新任务加入预先建立的队列中。
[0039]步骤S206,预先设置刷新任务的加载位置的优先级,内存、本地外设存储、云端存储的优先级逐渐降低。
[0040]本地外设存储可为SD (Secure Digital Memory,安全数码卡)卡,云端存储是指远程服务器存储。
[0041]步骤S208,采用预定数量的线程从该队列中依次提取该刷新任务,按照加载位置的优先级从高到低对该刷新任务进行加载,得到加载该刷新任务的数据,其中,加载的该刷新任务的数据采用弱引用存储。
[0042]具体的,在线程加载刷新任务的数据时,首先从内存中寻找相同的数据,若没有,则从本地外设存储中查找相同的数据,若没有,则继续从云端存储下载相同的数据。
[0043]步骤S210,根据加载的该刷新任务的数据刷新该视图。
[0044]上述视图刷新方法,加载数据时,首先从内存内获取数据,若内存不存在时,再从本地外设存储获取,若本地外设存储不存在,最后从云端存储中获取,从内存及本地外设存储中获取效率高,提高了数据加载的效率。
[0045]此外,步骤S206可在步骤S202的之前。
[0046]如图3所示,为另一个实施例中视图刷新方法的流程图。图3中的视图刷新方法与图2的区别在于:图3中增加了刷新任务中加载数据的起始位置和最后位置。该视图刷新方法包括:
[0047]步骤S302,获取对视图中列表的刷新请求。
[0048]步骤S304,根据该刷新请求将该列表的刷新任务加入预先建立的队列中。
[0049]步骤S306,预先设置刷新任务的加载位置的优先级,内存、本地外设存储、云端存储的优先级逐渐降低。
[0050]步骤S308,采用预定数量的线程从该队列中依次提取该刷新任务,获取刷新任务中加载数据的起始位置和最后位置,按照加载位置的优先级从高到低对该刷新任务进行加载,将该起始位置与最后位置之间的数据作为加载该刷新任务的数据,其中,加载的该刷新任务的数据采用弱引用存储。
[0051]具体的,在移动终端的操作系统(如安卓系统)上存在检测视图中数据所在位置的接口,通过该接口可监听滑动时间,再根据滑动时间计算刷新任务的数据所需加载的起始位置和最后位置。
[0052]步骤S310,根据加载的该刷新任务的数据刷新该视图。
[0053]上述视图刷新方法,仅加载起始位置和最后位置的数据,对不需在屏幕显示的数据不需进行加载,减少了加载数据量,节省了系统资源的开销。
[0054]在其他实施例中,与图3中的视图刷新方法的区别在于:
[0055]该获取对视图中列表的刷新请求的步骤包括:获取对视图中列表进行滑动操作产生的刷新请求。
[0056]该获取刷新任务中加载数据的起始位置的步骤包括:在检测到该滑动操作停止时,将停止时所在页面的起始位置作为该刷新任务中加载数据的起始位置。
[0057]具体的,对于视图中快速滑动的数据不进行加载,滑动停止后才进行加载,这样能避免加载无用数据,减少不必要的数据加载消耗。该数据可为应用程序的图标或,或者视图中的图片或文字等。
[0058]在其他实施例中,与图1中的视图刷新方法的区别在于,步骤S106包括:采用预定数量的线程从所述队列中依次提取该刷新任务,获取该刷新任务中加载数据的起始位置和最后位置;将该起始位置与最后位置之间的数据作为加载该刷新任务的数据。
[0059]如图4所示,为一个实施例中视图刷新装置的结构框图。该视图刷新装置应用于移动终端上,可占用较少的内存和CPU等系统资源。该移动终端可为手机、个人数字助理或掌上电脑等。该视图刷新装置,包括请求获取模块420、添加模块440、加载模块460和刷新模块480。
[0060]其中,请求获取模块420用于获取对视图中列表的刷新请求。
[0061 ] 具体的,对视图中列表的刷新请求可通过滑动视图中列表产生,或者滚动视图中的滚动条产生,或者向指定方向(如向左或向右)移动视图中列表产生等。
[0062]添加模块440用于根据该刷新请求将该列表的刷新任务加入预先建立的队列中。
[0063]刷新任务可为刷新视图中应用程序的图标,或者刷新视图中图片,或者刷新整个视图页面等。将刷新任务加入预先建立的队列中可保证数据的完整性,防止数据丢失。
[0064]加载模块460用于采用预定数量的线程从该队列中依次提取该刷新任务进行加载,得到加载该刷新任务的数据,其中,该刷新任务的数据采用弱引用存储。
[0065]线程是一种比计算机中的进程更小的单位,一个进程可拥有多个线程。该预定数量可包括I个、2个或3个等。本实施例中,采用3个线程同时提取刷新任务,经过实验数据可知采用3个线程同时加载,能够达到最高的效率,且能够有效控制CPU占用高的情况。线程在每个需要加载的刷新任务的页面初始化时创建,在刷新任务的页面销毁时结束,在该页面未销毁期间,线程一直处于等待状态。
[0066]弱引用是指Java中对象在任何情况下都有可能被系统回收。本实施例中,刷新任务为刷新应用程序的图标,将图标保存在Map里,以保证图标随时可以被回收。
[0067]刷新模块480用于根据加载的该刷新任务的数据刷新该视图。
[0068]本实施例中,该刷新任务为刷新应用程序的图标。刷新模块480还用于根据该加载的该刷新任务的数据采用FindViewByTag局部刷新该视图。具体的,通过tag (图标)找到对应的view (视图),然后再刷新该view。
[0069]上述视图刷新装置,采用预定数量的线程提取队列中的刷新任务进行加载,得到加载数据,然后根据加载的数据刷新视图,且数据采用弱引用存储,因采用预定数量的线程降低了每次刷新任务创建新线程的开销,弱引用存储数据可随时回收占用的内存,降低了内存和CPU等系统资源的占用率,使得页面刷新流畅,且采用队列保证了数据的完整性。
[0070]如图5所示,为另一个实施例中视图刷新装置的结构框图。该视图刷新装置,除了包括请求获取模块420、添加模块440、加载模块460和刷新模块480,还包括优先级预设模块 450。
[0071]其中,优先级预设模块450用于预先设置刷新任务的加载位置的优先级,内存、本地外设存储、云端存储的优先级逐渐降低。本地外设存储可为SD卡,云端存储是指远程服务器存储。
[0072]该加载模块460还用于采用预定数量的线程从该队列中依次提取该刷新任务,按照加载位置的优先级从高到低对该刷新任务进行加载,得到加载该刷新任务的数据。具体的,在线程加载刷新任务的数据时,首先从内存中寻找相同的数据,若没有,则从本地外设存储中查找相同的数据,若没有,则继续从云端存储下载相同的数据。
[0073]如图6所示,该加载模块460包括位置确定单元462和数据获取单元464。
[0074]其中,位置确定单元462用于采用预定数量的线程从该队列中依次提取该刷新任务,获取该刷新任务中加载数据的起始位置和最后位置。
[0075]具体的,在移动终端的操作系统(如安卓系统)上存在检测视图中数据所在位置的接口,通过该接口可监听滑动时间,再根据滑动时间计算刷新任务的数据所需加载的起始位置和最后位置。
[0076]数据获取单元464用于将该起始位置与最后位置之间的数据作为加载该刷新任务的数据。
[0077]上述视图刷新方法,仅加载起始位置和最后位置的数据,对不需在屏幕显示的数据不需进行加载,减少了加载数据量,节省了系统资源的开销。
[0078]进一步的,该请求获取模块420还用于获取对视图中列表进行滑动操作产生的刷新请求。
[0079]该位置确定单元462还用于在检测到该滑动操作停止时,将停止时所在页面的起始位置作为该刷新任务中加载数据的起始位置。
[0080]具体的,对于视图中快速滑动的数据不进行加载,滑动停止后才进行加载,这样能避免加载无用数据,减少不必要的数据加载消耗。该数据可为应用程序的图标或,或者视图中的图片或文字等。
[0081]此外,数据获取单元464还用于按照加载位置的优先级从高到低对该刷新任务进行加载,将该起始位置与最后位置之间的数据作为加载该刷新任务的数据,其中,加载的该刷新任务的数据采用弱引用存储。
[0082]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random AccessMemory, RAM)等。
[0083]本发明实施例还提供了另一种视图刷新系统,如图7所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该终端可以为包括手机、平板电脑、PDA (Personal Digital Assistant,个人数字助理)、POS(Point of Sales,销售终端)、车载电脑等任意终端设备,以终端为手机为例:
[0084]图7示出的是与本发明实施例提供的终端相关的手机的部分结构的框图。参考图7,手机包括:射频(Rad1 Frequency, RF)电路1110、存储器1120、输入单元1130、显示单元1140、传感器1150、音频电路1160、无线保真(wireless fidelity, WiFi)模块1170、处理器1180、以及电源1190等部件。本领域技术人员可以理解,图7中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0085]下面结合图7对手机的各个构成部件进行具体的介绍:
[0086]RF电路1110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1180处理;另外,将设计上行的数据发送给基站。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(LowNoise Amplifier, LNA)、双工器等。此外,RF电路110还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(Global System of Mobile communicat1n, GSM)、通用分组无线服务(GeneralPacket Rad1 Service, GPRS)、码分多址(Code Divis1n Multiple Access, CDMA)、宽带码分多址(Wideband Code Divis1n Multiple Access, WCDMA)、长期演进(Long TermEvolut1n, LTE))、电子邮件、短消息服务(Short Messaging Service, SMS)等。
[0087]存储器1120可用于存储软件程序以及模块,处理器1180通过运行存储在存储器1120的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器1120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
[0088]输入单元1130可用于接收输入的数字或字符信息,以及产生与手机1100的用户设置以及功能控制有关的键信号输入。具体地,输入单元1130可包括触控面板1131以及其他输入设备1132。触控面板1131,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1131上或在触控面板1131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板1131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1180,并能接收处理器1180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1131。除了触控面板1131,输入单元1130还可以包括其他输入设备1132。具体地,其他输入设备1132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
[0089]显示单元1140可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元1140可包括显示面板1141,可选的,可以采用液晶显示器(LiquidCrystal Display, LCD)、有机发光二极管(Organic Light-Emitting D1de, 0LED)等形式来配置显示面板1141。进一步的,触控面板1131可覆盖显示面板1141,当触控面板1131检测到在其上或附近的触摸操作后,传送给处理器1180以确定触摸事件的类型,随后处理器1180根据触摸事件的类型在显示面板1141上提供相应的视觉输出。虽然在图7中,触控面板1131与显示面板1141是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板1131与显示面板1141集成而实现手机的输入和输出功倉泛。
[0090]手机1100还可包括至少一种传感器1150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1141的亮度,接近传感器可在手机移动到耳边时,关闭显示面板1141和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用匕如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
[0091]音频电路1160、扬声器1161,传声器1162可提供用户与手机之间的音频接口。音频电路1160可将接收到的音频数据转换后的电信号,传输到扬声器1161,由扬声器1161转换为声音信号输出;另一方面,传声器1162将收集的声音信号转换为电信号,由音频电路1160接收后转换为音频数据,再将音频数据输出处理器1180处理后,经RF电路1110以发送给比如另一手机,或者将音频数据输出至存储器1120以便进一步处理。
[0092]WiFi属于短距离无线传输技术,手机通过WiFi模块1170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图7示出了 WiFi模块1170,但是可以理解的是,其并不属于手机1100的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
[0093]处理器1180是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1120内的软件程序和/或模块,以及调用存储在存储器1120内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器1180可包括一个或多个处理单元;优选的,处理器1180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1180中。
[0094]手机1100还包括给各个部件供电的电源1190(比如电池),优选的,电源可以通过电源管理系统与处理器1180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
[0095]尽管未示出,手机1100还可以包括摄像头、蓝牙模块等,在此不再赘述。
[0096]在本发明实施例中,该终端所包括的处理器1180还具有以下功能:
[0097]所述处理器执行一种视图刷新方法,包括步骤:
[0098]获取对视图中列表的刷新请求;
[0099]根据所述刷新请求将所述列表的刷新任务加入预先建立的队列中;
[0100]采用预定数量的线程从所述队列中依次提取所述刷新任务进行加载,得到加载所述刷新任务的数据,其中,加载的所述刷新任务的数据采用弱引用存储;
[0101]根据加载的所述刷新任务的数据刷新所述视图。
[0102]在其中一个实施例中,所述刷新任务为刷新应用程序的图标;
[0103]所述根据加载的所述刷新任务的数据刷新所述列表所在的视图的步骤包括:
[0104]根据所述加载的所述刷新任务的数据采用FindViewByTag局部刷新所述视图。
[0105]在其中一个实施例中,在所述采用预定数量的线程从所述队列中依次提取所述刷新任务进行加载,得到加载所述刷新任务的数据的步骤之前,还包括:
[0106]预先设置刷新任务的加载位置的优先级,内存、本地外设存储、云端存储的优先级逐渐降低;
[0107]所述采用预定数量的线程从所述队列中依次提取所述刷新任务进行加载,得到加载所述刷新任务的数据的步骤包括:
[0108]采用预定数量的线程从所述队列中依次提取所述刷新任务,按照加载位置的优先级从高到低对所述刷新任务进行加载,得到加载所述刷新任务的数据。
[0109]在其中一个实施例中,所述采用预定数量的线程从所述队列中依次提取所述刷新任务进行加载,得到加载所述刷新任务的数据的步骤包括:
[0110]采用预定数量的线程从所述队列中依次提取所述刷新任务,获取所述刷新任务中加载数据的起始位置和最后位置;
[0111]将所述起始位置与最后位置之间的数据作为加载所述刷新任务的数据。
[0112]在其中一个实施例中,所述获取对视图中列表的刷新请求的步骤包括:
[0113]获取对视图中列表进行滑动操作产生的刷新请求;
[0114]所述获取刷新任务中加载数据的起始位置的步骤包括:
[0115]在检测到所述滑动操作停止时,将停止时所在页面的起始位置作为所述刷新任务中加载数据的起始位置。
[0116]在其中一个实施例中,所述预定数量的线程包括I个、2个或3个。
[0117]以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【权利要求】
1.一种视图刷新方法,包括步骤: 获取对视图中列表的刷新请求; 根据所述刷新请求将所述列表的刷新任务加入预先建立的队列中; 采用预定数量的线程从所述队列中依次提取所述刷新任务进行加载,得到加载所述刷新任务的数据,其中,加载的所述刷新任务的数据采用弱引用存储; 根据加载的所述刷新任务的数据刷新所述视图。
2.根据权利要求1所述的方法,其特征在于,所述刷新任务为刷新应用程序的图标; 所述根据加载的所述刷新任务的数据刷新所述列表所在的视图的步骤包括: 根据所述加载的所述刷新任务的数据采用FindViewByTag局部刷新所述视图。
3.根据权利要求1所述的方法,其特征在于,在所述采用预定数量的线程从所述队列中依次提取所述刷新任务进行加载,得到加载所述刷新任务的数据的步骤之前,还包括: 预先设置刷新任务的加载位置的优先级,内存、本地外设存储、云端存储的优先级逐渐降低; 所述采用预定数量的线程从所述队列中依次提取所述刷新任务进行加载,得到加载所述刷新任务的数据的步骤包括: 采用预定数量的线程从所述队列中依次提取所述刷新任务,按照加载位置的优先级从高到低对所述刷新任务进行加载,得到加载所述刷新任务的数据。
4.根据权利要求1所述的方法,其特征在于,所述采用预定数量的线程从所述队列中依次提取所述刷新任务进行加载,得到加载所述刷新任务的数据的步骤包括: 采用预定数量的线程从所述队列中依次提取所述刷新任务,获取所述刷新任务中加载数据的起始位置和最后位置; 将所述起始位置与最后位置之间的数据作为加载所述刷新任务的数据。
5.根据权利要求4所述的方法,其特征在于,所述获取对视图中列表的刷新请求的步骤包括: 获取对视图中列表进行滑动操作产生的刷新请求; 所述获取刷新任务中加载数据的起始位置的步骤包括: 在检测到所述滑动操作停止时,将停止时所在页面的起始位置作为所述刷新任务中加载数据的起始位置。
6.一种视图刷新装置,其特征在于,包括: 请求获取模块,用于获取对视图中列表的刷新请求; 添加模块,用于根据所述刷新请求将所述列表的刷新任务加入预先建立的队列中; 加载模块,用于采用预定数量的线程从所述队列中依次提取所述刷新任务进行加载,得到加载所述刷新任务的数据,其中,加载的所述刷新任务的数据采用弱引用存储; 刷新模块,用于根据加载的所述刷新任务的数据刷新所述视图。
7.根据权利要求6所述的装置,其特征在于,所述刷新任务为刷新应用程序的图标; 所述刷新模块还用于根据所述加载的所述刷新任务的数据采用FindViewByTag局部刷新所述视图。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括: 优先级预设模块,用于预先设置刷新任务的加载位置的优先级,内存、本地外设存储、云端存储的优先级逐渐降低; 所述加载模块还用于采用预定数量的线程从所述队列中依次提取所述刷新任务,按照加载位置的优先级从高到低对所述刷新任务进行加载,得到加载所述刷新任务的数据。
9.根据权利要求6所述的装置,其特征在于,所述加载模块包括: 位置确定单元,用于采用预定数量的线程从所述队列中依次提取所述刷新任务,获取所述刷新任务中加载数据的起始位置和最后位置; 数据获取单元,用于将所述起始位置与最后位置之间的数据作为加载所述刷新任务的数据。
10.根据权利要求9所述的装置,其特征在于,所述请求获取模块还用于获取对视图中列表进行滑动操作产生的刷新请求; 所述位置确定单元还用于在检测到所述滑动操作停止时,将停止时所在页面的起始位置作为所述刷新任务中加载数据的起始位置。
【文档编号】G06F9/445GK104423996SQ201310398862
【公开日】2015年3月18日 申请日期:2013年9月4日 优先权日:2013年9月4日
【发明者】关盛裕, 许杰锋 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1