一种基于桌面组件的信息加载方法及智能终端的制作方法

文档序号:6546373阅读:168来源:国知局
一种基于桌面组件的信息加载方法及智能终端的制作方法
【专利摘要】本发明公开了一种基于桌面组件的信息加载方法及智能终端,所述方法包括步骤:监测滑动桌面组件信息列表的用户操作;当监测到所述用户操作时,获取缓存的未被桌面组件显示的数据对象的数量;判断未被桌面组件显示的数据对象的数量是否小于等于设定的参考值,若是,则自动下载新数据对象到缓存;其中,所述的桌面组件以信息列表的形式显示缓存的数据对象。通过本发明的技术方案,随着用户手指慢慢滑动,能够使桌面组件自动预先下载新数据到缓存,让用户感觉刷新信息列表的过程没有停顿,总有更多的信息在后面。
【专利说明】一种基于桌面组件的信息加载方法及智能终端
【技术领域】
[0001]本发明涉及智能终端领域,尤其涉及一种基于桌面组件的信息加载方法及智能终端。
【背景技术】
[0002]随着手机等智能终端的普及,出现了各种各样的信息聚合类桌面组件(Widget),由于Widget允许开发者在自己的桌面组件中聚合各种各样的信息与资源,Widget可让用户在智能终端的主屏幕界面及时了解程序显示的重要信息,如图1所示。这样一来,原本用户需要去好几个不同站点才能获取到的信息可以在一个桌面组件中全部获取到,极大的方便了用户阅读。
[0003]Android系统中的Widget称为AppWidget,标准的Android系统已预置了几个Widget的示例,如模拟时钟,音乐播放器等。现有技术中,AppWidget支持的控件类型非常有限,例如支持可滑动的原始控件中基本不支持监听滑动状态的接口,因此用户通过桌面组件阅读信息时,只能通过点击上一页/下一页/更多等按钮实现新数据对象的加载,以刷新数据列表;由于从服务器下载新数据需要一定时间,因此用户刷新信息列表时需等待(如图2所示),影响用户体验。

【发明内容】

[0004]本发明的目的在于提出一种基于桌面组件的信息加载方法及智能终端,能够自动预先下载新数据到缓存,使得刷新信息列表的过程更流畅。
[0005]为达此目的,本发明采用以下技术方案:
[0006]一种基于桌面组件的信息加载方法,包括步骤:
[0007]监测滑动桌面组件信息列表的用户操作;
[0008]当监测到所述用户操作时,获取缓存的未被桌面组件显示的数据对象的数量;
[0009]判断未被桌面组件显示的数据对象的数量是否小于等于设定的参考值,若是,则自动下载新数据对象到缓存;
[0010]其中,所述的桌面组件以信息列表的形式显示缓存的数据对象。
[0011]其中,所述监测滑动桌面组件信息列表的用户操作之前,包括步骤:
[0012]启动桌面组件,下载设定条数的数据对象到缓存;
[0013]所述监测滑动桌面组件信息列表的用户操作之后,还包括:
[0014]当监测到所述用户操作时,从缓存的数据对象中读取对应的数据对象,用所述数据对象刷新桌面组件对应的信息列表。
[0015]其中,所述启动桌面组件,下载设定条数的数据对象到缓存之后,还包括:
[0016]若收到用户点击用于下载新数据的按钮的操作指令,则下载设定条数的新数据对象到缓存,并刷新桌面组件的信息列表。
[0017]其中,所述自动下载新数据对象到缓存,具体为:[0018]自动下载k条新数据对象到缓存;所述新数据对象的条数k= N-m,其中,N为所述缓存的容量大小,m为缓存的未被桌面组件显示的数据对象的数量。
[0019]其中,所述参考值为5 ;所述桌面组件为带容器的App Widget0
[0020]本发明另一方面还提供了一种实现桌面组件自动加载信息的智能终端,包括:
[0021]监测模块,用于监测滑动桌面组件信息列表的用户操作;
[0022]获取模块,用于当监测到所述用户操作时,获取缓存的未被桌面组件显示的数据对象的数量;
[0023]下载模块,用于判断未被桌面组件显示的数据对象的数量是否小于等于设定的参考值,若是,则自动下载新数据对象到缓存;
[0024]其中,所述的桌面组件以信息列表的形式显示缓存的数据对象。
[0025]其中,还包括:
[0026]初始模块,用于启动桌面组件,下载设定条数的数据对象到缓存;
[0027]列表刷新模块,用于当监测到所述用户操作时,从缓存的数据对象中读取对应的数据对象,用所述数据对象刷新桌面组件对应的信息列表。
[0028]其中,所述下载模块,还用于若收到用户点击用于下载新数据的按钮的操作指令,则下载设定条数的新数据对象到缓存,并发出刷新桌面组件的信息列表的指令。
[0029]其中,所述自动下载新数据对象到缓存,具体为:
[0030]自动下载k条新数据对象到缓存,所述新数据对象的条数k= N-m,其中,N为所述缓存的容量大小,m为缓存的未被桌面组件显示的数据对象的数量。
[0031]其中,所述参考值为5 ;所述桌面组件为带容器的App Widget0
[0032]实施本发明实施例,具有如下有益效果:
[0033]本发明实施例通过监测滑动桌面组件信息列表的用户操作,当监测到所述用户操作时,获取缓存的未被显示的数据对象的数量以判断是否需预先下载新数据,当未被显示的数据对象的数量是否小于等于设定的参考值时,自动下载新数据到缓存。通过本发明的方案,随着用户手指慢慢滑动,桌面组件可自动预先下载新数据到缓存,让用户感觉刷新信息列表的过程没有停顿,总有更多的信息在后面。
【专利附图】

【附图说明】
[0034]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0035]图1是本发明的桌面组件的信息列表示意图。
[0036]图2是现有技术刷新桌面组件的信息列表时的效果图。
[0037]图3是本发明第一实施例的一种基于桌面组件的信息加载方法的流程示意图。
[0038]图4是本发明第二实施例的一种基于桌面组件的信息加载方法的程序设计示意图。
[0039]图5是本发明第三实施例的一种实现桌面组件自动加载信息的智能终端的结构示意图。【具体实施方式】
[0040]下面结合本发明的附图对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0041]结合图3对本发明的第一实施例进行说明。
[0042]图3是本发明第一实施例的一种基于桌面组件的信息加载方法流程图,详述如下:
[0043]步骤S101,监测滑动桌面组件信息列表的用户操作。
[0044]在第一实施例中,用户启动桌面组件时,桌面组件会从服务器下载设定条数的数据对象到缓存,并以信息列表的形式显示缓存的数据对象。优选的,本实施例中所述缓存的容量大小N,即可设置桌面组件启动时,自动下载20条数据对象到缓存。如图1所示,本实施例中桌面组件一屏包括10条信息列表。
[0045]本实施例中,设缓存容量N = 20,桌面组件初始屏显示其中10条数据对象,其他10条数据对象可根据用户的刷新信息列表的操作指令随后在信息列表中显示。具体如当收到用户点击上一页/下一页等用于刷新信息列表的操作指令时,从缓存中读取其他10条数据以刷新桌面组件的全部信息列表;或者根据用户的滑动操作手势,从缓存的数据对象中读取对应的数据对象,用所述数据对象刷新桌面组件对应的信息列表。优选的,可通过逐次从缓存读取一数据对象的方式逐一刷新桌面组件对应的信息列表。
[0046]步骤S102,当监测到所述用户操作时,获取缓存的未被桌面组件显示的数据对象的数量。
[0047]在第一实施例中,当监测到滑动桌面组件信息列表的用户操作时(具体操作手势依据各桌面组件的设置,在本发明实施例中不作限定。例如若向上、向下或者水平滑动的用户操作时),会获取缓存的未被桌面组件显示的数据对象的数量,同时从缓存的数据对象中读取对应的数据对象,用所述数据对象刷新桌面组件对应的信息列表。优选的,可通过逐次从缓存读取一数据对象的方式逐一刷新桌面组件对应的信息列表。
[0048]步骤S103,判断未被桌面组件显示的数据对象的数量是否小于等于设定的参考值,若是,则自动下载新数据对象到缓存。
[0049]优选的可将所述参考值可设定为上述缓存容量N的四分之一,在第一实施例中可将所述参考值设定为5。当监测到向下滑动桌面组件信息列表的用户操作时,判断缓存的未被桌面组件显示的数据对象的数量是否小于等于所述参考值,若是,则需预先下载新数据,即桌面组件自动从服务器端下载新数据对象到缓存。由于预先下载了新数据对象到缓存,使得随后用户刷新信息列表时不会出现停顿,让用户感觉总有更多信息在后面。
[0050]作为一优选实施方式,当用户向下滑动桌面组件信息列表时,若缓存的未被显示的数据对象的数量小于等于预设的参考值,则自动下载新数据对象到缓存,所述新数据对象的条数k = N-m ;其中,N为缓存的容量大小,m为缓存的未被显示的数据对象的数量。例如,本实施例中上述设定条数N为20,对应的将所述参考值设定为5,当用户向下滑动桌面组件信息列表时,若得出未被显示的数据对象的数量为5条,则桌面组件自动从服务器下载15条新数据到缓存。
[0051]需要说明的是,当检测到点击更多等用于下载新数据的按钮的操作指令时,桌面组件将下载设定条数的新数据对象到缓存。本实施例中,即下载N条新数据对象到缓存。
[0052]通过本发明第一实施例,当用户基于终端触摸屏滑动桌面组件信息列表时,根据缓存的未被显示的数据对象的数量判断是否需预先下载新数据到缓存,若需要则预先下载当前桌面组件关联的新数据对象到缓存,有利于消除用户刷新信息列表时的停顿或等待,使用户感觉总有更多的信息在后面,提高了用户阅读体验。
[0053]结合图4对本发明的第二实施例进行说明,在第二实施例中,以Android系统中的带容器collection的桌面组件App Widget为例,对本发明的基于桌面组件的信息加载方法进行具体的说明。
[0054]Android系统增加了 App Widget框架,用以支持widget类型应用的开发,App Widget框架主要由两个部件来组成:l)AppWidgetService,是框架的核心类,是系统service之一,负责widgets的管理工作;2) AppWidgetManager,负责widget视图的实际更新以及相关管理。带容器的App Widget使用RemoteViewsService展示remote data备份的容器,RemoteViewsService 提供的数据对应在 App Widget 中可使用 ListView, GridView,StackView, AdapterViewFlipper等view类型(即容器视图)显示,本发明实施例中信息列表即ListView类型的容器视图。
[0055]每一个Android项目都包含一个清单文件(AndroidManifest.xml),它存储在项目层次中的最底层。该文件可以定义应用程序及其组件的结构和元数据。它包含了组成应用程序的每一个组件(活动、服务、内容提供器和广播接收器)的节点,并使用Intent过滤器和权限来确定这些组件之间以及这些组件和其他应用程序是如何交互的。
[0056]在第二实施例中,实现带容器的App Widget的信息加载的过程如下:
[0057]首先,在AndroidManifest.xml文件中通过添加receiver标签注册一个AppWidgetProvider广播接收器,并给该接收器添加相应的Intent action属性。在AppWidgetProvider类中定义了用户和App Widget交互的基于广播事件(本实施例中为下载新数据对象的广播事件)的接口方法。AppWidgetProvider广播接收器就像全局事件监听器一样,一旦注册了,无论何时,只要发出广播的Intent与该接收器相匹配,该接收器就会立即执行。在本实施例中,当发出的广播为下载新数据对象的广播时,该接收器就会立即启动异步加载类去服务器端下载新数据对象到缓存,并通知信息列表进行刷新。
[0058]然后,继承RemoteViewsService 类,并在 RemoteViewsService 的子类中实现用于创建远程容器视图的RemoteViewsFactory内部类,以显示远程数据。本实施例中RemoteViewsFactory是为信息列表ListView和提供给该ListView的数据对象所设计的接口,其作用相当于一个适配器,主要用于把缓存的数据对象以信息列表形式进行显示。
[0059]通常在RemoteViewsFactory中需要实现onCreate O 和 getViewAtO 这两个方法。其中,当RemoteViewsFactory首次被创建时,onCreate ()方法将被调用;而getViewAtO方法将返回与信息列表的对应位置的数据对象相对应的数据对象。本实施例中,刷新桌面组件的信息列表通过调用 AppWidgetManager 的 notifyAppWidgetViewDataChanget 方法,通过该方法RemoteViewsFactory内部类中的OnDataSetChanged方法将被调用,接着将会调用RemoteViewsFactory内部类中的函数getViewAt (position)达到真正的刷新每一项信息列表的目的。
[0060]进一步的,本实施例中在RemoteViewsFactory内部类中增加了一个标志位flag,该标志位flag主要用于判断下载新数据对象的广播是由滑动信息列表的用户操作事件触发的、还是由点击对应按钮的用户操作事件触发的(即现有技术的加载方式),并且在函数OnDataSetChanged 中将标志位 flag 置为 true。
[0061]本实施例中,当接收到滑动信息列表的操作指令(向上、向下或水平滑动等)时,函数 getViewAt (position)将被调用,当函数 getViewAt (position)返回 position 的值等于给定值时,将标志位flag置为false,同时发出下载新数据对象的广播。可通过如下代码实现:
[0062]if (position ==给定值)
[0063]{ [0064]if (flag == true)
[0065]flag = false
[0066]else
[0067]设置Intent的action属性并发出下载新数据的广播
[0068]}
[0069]本实施例中,启动桌面组件时下载20条的数据对象到缓存,上述给定值为16。即当用户滑动信息列表时,当函数getViewAt (position)返回position的值等于16时,将标志位flag置为false,同时发出下载新数据对象的广播。
[0070]当广播接收器收到所述广播后,启动异步加载类去服务器端下载新数据对象,并通知信息列表刷新数据。
[0071]基于上述设置,如图4所示,在第二实施例中,启动带容器的App Widget,实现自动下载数据的程序执行流程如下:
[0072]步骤201,异步下载数据,可调用notifyAppWidgetViewDataChanget方法实现。
[0073]步骤202,进入OnDataSetChanged函数,在该函数的尾部设置标志为flag为true ο
[0074]步骤203,调用getViewAt (position)函数,获得缓存的下一待显示的数据对象。
[0075]步骤204,position是否为给定值?若是,执行步骤205,否则,执行步骤207。本实施例中,即上述给定值为16。
[0076]步骤205,检查Flag是否为true ?若是,执行步骤206,否则,发出异步下载新数据的广播,执行步骤201。
[0077]步骤206,信息列表是否刷新完毕?若是,结束本次刷新,否则,执行步骤203继续刷新其他息列表。
[0078]通过上述第二实施例,基于Android系统带容器的桌面组件,当用户基于触摸屏滑动信息列表时,自动判断是否需下载新数据对象到缓存,实现了自动预先下载桌面组件关联的新数据对象,当用户通过所述桌面组件阅读时,随着手指慢慢滑动自动连续不断的加载新数据,让用户感觉没有停顿总有信息在后面。
[0079]以下为本发明实施例提供的一种智能终端的实施例。所述智能终端的实施例与上述的方法实施例属于同一构思,智能终端的实施例中未详尽描述的细节内容,可以参考上述方法实施例。
[0080]图5示出了本发明第三实施例的一种实现桌面组件自动加载信息的智能终端的结构示意图,下面进行详细说明。
[0081]请参见图5,所述智能终端包括监测模块301、获取模块302、下载模块303.其中,
[0082]所述监测模块301,用于监测滑动桌面组件信息列表的用户操作。具体实施时可通过广播机制进行检测。本实施例中滑动桌面组件信息列表的用户操作依据各桌面组件的设置而定,可为向上滑动、向下滑动或者水平方向滑动信息列表。
[0083]所述获取模块302,用于当监测到所述用户操作时,获取缓存的未被显示的数据对象的数量。即当监测到滑动桌面组件信息列表的用户操作时,获取缓存的未被显示的数据对象的数量,同时从缓存的数据对象中读取对应的数据对象,用所述数据对象刷新桌面组件对应的信息列表。优选的,可通过逐次从缓存读取一数据对象的方式逐一刷新桌面组件对应的信息列表。
[0084]所述下载模块303,用于判断未被显示的数据对象的数量是否小于等于设定的参考值,若是,则自动下载新数据到缓存。本实施例中具体为:自动下载k条新数据对象到缓存,k = N-m ;其中,N为缓存的容量大小,m为缓存的未被显示的数据对象的数量。
[0085]进一步的,本实施例中,所述的智能终端还包括初始模块304和列表刷新模块305。
[0086]所述初始模块304,用于启动桌面组件,下载设定条数的数据对象到缓存。本实施例中所述缓存的容量大小可设定为N = 20,即桌面组件启动时,自动从服务器下载20条的数据对象到缓存,再以信息列表的形式显示缓存的数据对象。如图1所示,桌面组件一屏包括10条信息列表。桌面组件初始屏显示其中10条数据对象,其他10条数据对象可根据用户的刷新信息列表的操作指令随后在信息列表中显示。
[0087]所述列表刷新模块305,用于当监测到滑动信息列表的用户操作时,从缓存的数据中读取一数据对象,用该数据对象刷新桌面组件对应的信息列表。以及根据用户的滑动操作手势,从缓存的数据对象中读取对应的数据对象,用所述数据对象刷新桌面组件对应的信息列表。优选的,可通过逐次从缓存读取一数据对象的方式逐一刷新桌面组件对应的信息列表
[0088]进一步的,所述下载模块303,还用于若收到用户点击用于下载新数据的按钮的操作指令,则下载设定条数的新数据对象到缓存,并发出刷新桌面组件的信息列表的指令给列表刷新模块305,以刷新桌面组件的信息列表,实现翻页的效果。例如当收到用户点击更多等用于刷新信息列表的操作指令时,则从服务器下载设定条数的新数据对象到缓存。
[0089]本实施例中,可将所述参考值可设定为上述设定条数N的四分之一,即所述参考值设定为5。当监测到滑动桌面组件信息列表的用户操作时,判断缓存的未被显示的数据对象的数量是否小于等于所述参考值,若是,则需下载新数据,从服务器端下载新数据对象到缓存。由于预先下载了新数据对象到缓存,使得随后用户刷新信息列表时没有停顿,让用户感觉总有更多信息在后面。
[0090]作为一优选实施方式,当用户基于触摸屏滑动桌面组件信息列表时,若缓存的未被显示的数据对象的数量小于等于预设的参考值,则自动下载k条新数据对象到缓存,k =N-m, N为所述缓存的容量大小,m为缓存的未被显示的数据对象的数量。例如,本实施例中将所述参考值设定为5,当用户向下滑动桌面组件信息列表时,若得出未被显示的数据对象的数量为5条,则桌面组件自动从服务器下载15条新数据到缓存。
[0091]优选的,本实施例中所述桌面组件为带容器的App Widget0
[0092]通过上述第三实施例,当用户基于触摸屏滑动信息列表时,根据缓存的未被显示的数据对象的数量判断是否需预先下载新数据对象到缓存,若需要则预先下载新数据,有利于消除用户刷新信息列表时的停顿或等待,使用户感觉总有更多的信息在后面,提高了用户阅读体验。
[0093]以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利要求范围,因此,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,仍属本发明所涵盖的范围。
【权利要求】
1.一种基于桌面组件的信息加载方法,其特征在于,包括步骤: 监测滑动桌面组件信息列表的用户操作; 当监测到所述用户操作时,获取缓存的未被桌面组件显示的数据对象的数量; 判断未被桌面组件显示的数据对象的数量是否小于等于设定的参考值,若是,则自动下载新数据对象到缓存; 其中,所述的桌面组件以信息列表的形式显示缓存的数据对象。
2.根据权利要求1所述的基于桌面组件的信息加载方法,其特征在于,所述监测滑动桌面组件信息列表的用户操作之前,包括步骤: 启动桌面组件,下载设定条数的数据对象到缓存; 所述监测滑动桌面组件信息列表的用户操作之后,还包括: 当监测到所述用户操作时,从缓存的数据对象中读取对应的数据对象,用所述数据对象刷新桌面组件对应的信息列表。
3.根据权利要求2所述的基于桌面组件的信息加载方法,其特征在于,所述启动桌面组件,下载设定条数的数据对象到缓存之后,还包括: 若收到用户点击用于下载新数据的按钮的操作指令,则下载设定条数的新数据对象到缓存,并刷新桌面组 件的信息列表。
4.根据权利要求2所述的基于桌面组件的信息加载方法,其特征在于,所述自动下载新数据对象到缓存,具体为: 自动下载k条新数据对象到缓存;所述新数据对象的条数k = N-m,其中,N为所述缓存的容量大小,m为缓存的未被桌面组件显示的数据对象的数量。
5.根据权利要求2所述的基于桌面组件的信息加载方法,其特征在于,所述参考值为5 ;所述桌面组件为带容器的App Widget0
6.一种实现桌面组件自动加载信息的智能终端,其特征在于,包括: 监测模块,用于监测滑动桌面组件信息列表的用户操作; 获取模块,用于当监测到所述用户操作时,获取缓存的未被桌面组件显示的数据对象的数量; 下载模块,用于判断未被桌面组件显示的数据对象的数量是否小于等于设定的参考值,若是,则自动下载新数据对象到缓存; 其中,所述的桌面组件以信息列表的形式显示缓存的数据对象。
7.根据权利要求6所述的智能终端,其特征在于,还包括: 初始模块,用于启动桌面组件,下载设定条数的数据对象到缓存; 列表刷新模块,用于当监测到所述用户操作时,从缓存的数据对象中读取对应的数据对象,用所述数据对象刷新桌面组件对应的信息列表。
8.根据权利要求7所述的智能终端,其特征在于,所述下载模块,还用于若收到用户点击用于下载新数据的按钮的操作指令,则下载设定条数的新数据对象到缓存,并发出刷新桌面组件的信息列表的指令。
9.根据权利要求7所述的智能终端,其特征在于,所述自动下载新数据对象到缓存,具体为: 自动下载k条新数据对象到缓存,所述新数据对象的条数k = N-m,其中,N为所述缓存的容量大小,m为缓存的未被桌面组件显示的数据对象的数量。
10.根据权利要 求7所述的智能终端,其特征在于,所述参考值为5 ;所述桌面组件为带容器的 App Widget
【文档编号】G06F3/0481GK103941964SQ201410200303
【公开日】2014年7月23日 申请日期:2014年5月13日 优先权日:2014年5月13日
【发明者】杨虎, 帅庆, 王靖 申请人:上海天奕达电子科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1