一种页面显示方法及装置与流程

文档序号:11063346阅读:332来源:国知局
一种页面显示方法及装置与制造工艺

本申请涉及软件处理技术领域,更具体地说,涉及一种页面显示方法及装置。



背景技术:

随着智能终端的发展,智能手机、IPAD等智能终端越来越多的走近用户的日常生活。智能终端上装载有多种应用,给用户的生活带来更丰富的体验和乐趣。

现有技术中,用户在智能终端实现页面的切换显示时,需要从内存中读取待显示页面的根布局对象,根布局对象描述了页面所包含的控件,因此在内存中读取根布局对象后,可以据此查找到页面所有的控件,进而将控件加载在页面上,实现页面的显示。当用户退出当前页面并随后想要再次打开该页面时,需要再次从内存中读取该页面的根布局对象,重复上述过程。

由于从内存中读取数据的过程需要耗费一定的时间,因此现有技术在显示页面时存在耗时长、用户体验差的问题。



技术实现要素:

有鉴于此,本申请提供了一种页面显示方法及装置,用于解决现有页面显示过程存在耗时长、用户体验差的问题。

为了实现上述目的,现提出的方案如下:

一种页面显示方法,包括:

接收用户打开第一页面的请求;

判断所述第一页面是否被打开过;

若是,在缓存中查找隐藏的第一页面及其对应的根布局对象,所述隐藏的第一页面为首次打开第一页面后在退出第一页面时隐藏在缓存中的第一页 面,所述根布局对象为首次打开所述第一页面时从内存读取并保存在缓存中的根布局对象,其中描述了第一页面所包含的控件;

判断所述第一页面当前的数据内容与所述隐藏的第一页面的数据内容是否相同;

若不同,则利用所述隐藏的第一页面对应的根布局对象,确定隐藏的第一页面所包含的控件,同时清除控件内的数据;

将所述第一页面当前的数据内容填充至所述控件中,并显示隐藏的第一页面。

一种页面显示装置,包括:

页面打开请求接收单元,用于接收用户打开第一页面的请求;

页面打开记录判断单元,用于判断所述第一页面是否被打开过;

缓存查询单元,用于在所述页面打开记录判断单元的判断结果为是时,在缓存中查找隐藏的第一页面及其对应的根布局对象,所述隐藏的第一页面为首次打开第一页面后在退出第一页面时隐藏在缓存中的第一页面,所述根布局对象为首次打开所述第一页面时从内存读取并保存在缓存中的根布局对象,其中描述了第一页面所包含的控件;

数据内容判断单元,用于判断所述第一页面当前的数据内容与所述隐藏的第一页面的数据内容是否相同;

第一根布局对象利用单元,用于在所述数据内容判断单元的判断结果为否时,利用所述隐藏的第一页面对应的根布局对象,确定隐藏的第一页面所包含的控件,同时清除控件内的数据;

第一页面显示单元,用于将所述第一页面当前的数据内容填充至所述控件中,并显示隐藏的第一页面。

从上述的技术方案可以看出,本申请实施例提供的页面显示方法,在首次打开第一页面时,从内存中读取第一页面的根布局对象并保存在缓存中,同时在退出第一页面时将第一页面隐藏在缓存中,进而当再次接收到用户请求打开第一页面时,从缓存中查找隐藏的第一页面及其对应的根布局对象,判断第一页面当前的数据内容与隐藏的第一页面的数据内容是否相同,如果不同,则利用隐藏的第一页面对应的根布局对象,确定隐藏的第一页面所包含的控件,同时清除控件内的数据,将第一页面当前的数据内容填充至所述 控件中,显示隐藏的第一页面。本申请在首次打开第一页面时将根布局对象保存在缓存中,同时在退出第一页面时将第一页面隐藏在缓存中,因此在后续再次打开第一页面时,可以直接从缓存中调取根布局对象,相比于从内存中读取根布局对象,时间大大缩短。

同时,本申请利用第一页面当前的数据内容,对隐藏的第一页面中控件内的数据进行更新,然后进行显示,使得显示的第一页面为内容数据更新后的第一页面。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例提供的一种页面显示方法流程图;

图2为本申请实施例公开的另一种页面显示方法流程图;

图3为本申请实施例公开的又一种页面显示方法流程图;

图4为本申请实施例公开的又一种页面显示方法流程图;

图5为本申请实施例公开的又一种页面显示方法流程图;

图6为本申请实施例公开的一种页面显示装置结构示意图;

图7为本申请实施例公开的一种终端硬件结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

对于某一个页面而言,其在第一次打开及后续再次打开时,页面上的控件是固定不变的,也即页面的根布局对象是不变的,可变的是控件内显示的数据内容,因此本申请实施例提供的页面显示方法中,在首次打开第一页面 后,将根布局对象及第一页面隐藏到缓存中,后续再次打开第一页面时,直接从缓存中读取,并利用第一页面当前的数据内容替换掉隐藏的第一页面中控件的数据,实现了页面快速打开。

参见图1,图1为本申请实施例提供的一种页面显示方法流程图。

如图1所示,该方法包括:

步骤S100、接收用户打开第一页面的请求;

用户可以在非第一页面的其它页面中提交第一页面的打开请求,例如用户在其它页面中点击某个与第一页面链接的按钮、图标等。

步骤S110、判断所述第一页面是否被打开过,若是,执行步骤S120;

步骤S120、在缓存中查找隐藏的第一页面及其对应的根布局对象;

其中,所述隐藏的第一页面为首次打开第一页面后,在退出第一页面时隐藏在缓存中的第一页面,所述根布局对象为首次打开所述第一页面时从内存读取并保存在缓存中的根布局对象,其中描述了第一页面所包含的控件。

上述判断第一页面是否被打开过的过程,可以是在缓存中查找是否存在隐藏的第一页面,如果能够查找到,则代表第一页面被打开过,否则,代表第一页面未被打开过。当然,除了这种方式之外,还可以采用其它的判断方式,例如对每一个打开过的页面进行记录,通过查询页面打开记录即可确定第一页面是否被打开过。

步骤S130、判断所述第一页面当前的数据内容与所述隐藏的第一页面的数据内容是否相同,若不同,执行步骤S140;

具体地,页面的数据内容为页面内各控件内的数据内容,本步骤中对比数据内容时,判断第一页面当前各控件的数据内容与隐藏的第一页面上各控件的数据是否相同。

步骤S140、利用所述隐藏的第一页面对应的根布局对象,确定隐藏的第一页面所包含的控件,同时清除控件内的数据;

通过第一页面的根布局对象,能够找到隐藏的第一页面所包含的各个控件。对于查找到的各个控件,将其内的数据清空。

步骤S150、将所述第一页面当前的数据内容填充至所述控件中,并显示隐藏的第一页面。

由于上一步骤中已经将控件内数据进行清空,本步骤中将第一页面当前的数据内容填充到控件中,实现控件内容的更新。

本申请实施例提供的页面显示方法,在首次打开第一页面时,从内存中读取第一页面的根布局对象并保存在缓存中,同时在退出第一页面时将第一页面隐藏在缓存中,进而当再次接收到用户请求打开第一页面时,从缓存中查找隐藏的第一页面及其对应的根布局对象,判断第一页面当前的数据内容与隐藏的第一页面的数据内容是否相同,如果不同,则利用隐藏的第一页面对应的根布局对象,确定隐藏的第一页面所包含的控件,同时清除控件内的数据,将第一页面当前的数据内容填充至所述控件中,显示隐藏的第一页面。本申请在首次打开第一页面时将根布局对象保存在缓存中,同时在退出第一页面时将第一页面隐藏在缓存中,因此在后续再次打开第一页面时,可以直接从缓存中调取根布局对象,相比于从内存中读取根布局对象,时间大大缩短。

同时,本申请利用第一页面当前的数据内容,对隐藏的第一页面中控件内的数据进行更新,然后进行显示,使得显示的第一页面为内容数据更新后的第一页面。

接下来,按照软件底层逻辑对本申请方案进行描述。

创建一个类C,在此类的初始化方法中定义布局对象,根据外部传入的布局对象来赋值,在此类的初始化方法中修改传统的查找控件的方式,把原本的从内存中寻找控件对象,改为从传入的布局对象中寻找控件对象,同时将外部传入的页面数据显示到控件上。

在页面A中,如果是第一次打开页面B,则调用系统添加页面B的方法,在页面B中实现类C,从内存中页面B的根布局对象RootView并传给类C,类C能够根据此RootView找到页面B中所有的控件对象,并将页面B的内容数据填充到控件上,完成后交给系统显示。

在退出页面B进入页面A时,隐藏页面B,在缓存中保存根布局对象RootView,显示页面A。这里,由于需要对页面B进行隐藏,因此在创建页面B时可以使页面B继承于Fragment组件,利用Fragment组件可以隐藏/显示的特性。

在页面A中第二次打开页面B时,调用系统显示页面B的方法,在B页面中实现类C,将缓存中保存的根布局对象RootView传给类C,通过RootView确定隐藏的页面B上的所有控件。判断页面B当前新的数据内容与隐藏页面B上的数据内容是否相同,也即页面B的数据内容是否发生改变,如果未发生改变,则直接显示隐藏的页面B,如果发生了改变,则清空控件内的数据,传入页面B当前的新的数据内容,交给系统显示。

参见图2,图2为本申请实施例公开的另一种页面显示方法流程图。

如图2所示,该方法包括:

步骤S200、接收用户打开第一页面的请求;

用户可以在非第一页面的其它页面中提交第一页面的打开请求,例如用户在其它页面中点击某个与第一页面链接的按钮、图标等。

步骤S210、判断所述第一页面是否被打开过,若是,执行步骤S220;

步骤S220、在缓存中查找隐藏的第一页面及其对应的根布局对象;

其中,所述隐藏的第一页面为首次打开第一页面后,在退出第一页面时隐藏在缓存中的第一页面,所述根布局对象为首次打开所述第一页面时从内存读取并保存在缓存中的根布局对象,其中描述了第一页面所包含的控件。

步骤S230、判断所述第一页面当前的数据内容与所述隐藏的第一页面的数据内容是否相同,若不同,执行步骤S240,若相同,执行步骤S260;

具体地,页面的数据内容为页面内各控件内的数据内容,本步骤中对比数据内容时,判断第一页面当前各控件的数据内容与隐藏的第一页面上各控件的数据是否相同。

步骤S240、利用所述隐藏的第一页面对应的根布局对象,确定隐藏的第一页面所包含的控件,同时清除控件内的数据;

步骤S250、将所述第一页面当前的数据内容填充至所述控件中,并显示隐藏的第一页面;

步骤S260、将隐藏的第一页面进行显示。

相比于上一实施例,本实施例增加了在第一页面的当前数据内容与隐藏的第一页面的数据内容相同时的处理步骤,即直接将隐藏的第一页面进行显示即可。

参见图3,图3为本申请实施例公开的又一种页面显示方法流程图。

如图3所示,该方法包括:

步骤S300、接收用户打开第一页面的请求;

用户可以在非第一页面的其它页面中提交第一页面的打开请求,例如用户在其它页面中点击某个与第一页面链接的按钮、图标等。

步骤S310、判断所述第一页面是否被打开过,若是,执行步骤S320;

步骤S320、在缓存中查找隐藏的第一页面及其对应的根布局对象;

其中,所述隐藏的第一页面为首次打开第一页面后,在退出第一页面时隐藏在缓存中的第一页面,所述根布局对象为首次打开所述第一页面时从内存读取并保存在缓存中的根布局对象,其中描述了第一页面所包含的控件。

步骤S330、判断所述第一页面当前的数据内容与所述隐藏的第一页面的数据内容是否相同,若不同,执行步骤S340;

具体地,页面的数据内容为页面内各控件内的数据内容,本步骤中对比数据内容时,判断第一页面当前各控件的数据内容与隐藏的第一页面上各控件的数据是否相同。

步骤S340、利用所述隐藏的第一页面对应的根布局对象,确定隐藏的第一页面所包含的控件,同时清除控件内的数据;

步骤S350、将所述第一页面当前的数据内容填充至所述控件中,并显示隐藏的第一页面;

步骤S360、接收用户从所述第一页面跳转到第二页面的请求;

其中,第二页面为非第一页面的其它页面,可以是第一页面的上一级页面。

步骤S370、将当前显示的第一页面及其对应的根布局对象隐藏到缓存中,显示第二页面。

在第一页面切换到第二页面时,本申请将当前显示的第一页面以及对应的根布局对象隐藏到缓存中,以便后续再次打开第一页面时能够直接在缓存中调取隐藏的第一页面以及第一页面对应的根布局对象。相比于现有技术在退出第一页面时,直接将第一页面销毁,本申请在再次打开第一页面时能够加快页面打开速度,提升用户体验感。

参见图4,图4为本申请实施例公开的又一种页面显示方法流程图。

如图4所示,该方法包括:

步骤S400、接收用户打开第一页面的请求;

用户可以在非第一页面的其它页面中提交第一页面的打开请求,例如用户在其它页面中点击某个与第一页面链接的按钮、图标等。

步骤S410、判断所述第一页面是否被打开过,若是,执行步骤S420;

步骤S420、在缓存中查找隐藏的第一页面及其对应的根布局对象;

其中,所述隐藏的第一页面为首次打开第一页面后,在退出第一页面时隐藏在缓存中的第一页面,所述根布局对象为首次打开所述第一页面时从内存读取并保存在缓存中的根布局对象,其中描述了第一页面所包含的控件。

步骤S430、判断所述第一页面当前的数据内容与所述隐藏的第一页面的数据内容是否相同,若不同,执行步骤S440;

具体地,页面的数据内容为页面内各控件内的数据内容,本步骤中对比数据内容时,判断第一页面当前各控件的数据内容与隐藏的第一页面上各控件的数据是否相同。

步骤S440、利用所述隐藏的第一页面对应的根布局对象,确定隐藏的第一页面所包含的控件,同时清除控件内的数据;

步骤S450、将所述第一页面当前的数据内容填充至所述控件中,并显示隐藏的第一页面;

步骤S460、接收用户从所述第一页面跳转到第二页面的请求;

步骤S470、将当前显示的第一页面及其对应的根布局对象隐藏到缓存中,显示第二页面;

步骤S480、接收用户通过所述第二页面输入的清除指令;

具体地,本申请可以预先在第二页面上设置缓存页面清除图标,用户如果想要将缓存中保存的页面及根布局对象清除掉,则可以点击该图标。

步骤S490、将隐藏的第一页面及其对应的根布局对象从缓存中删除。

响应用户的清除指令,将缓存中的第一页面及根布局对象删除掉。

本实施例中,提供了用户清除缓存中保存的页面和根布局对象的逻辑,当用户认为后续不需要再次打开第一页面,或者基于其它原因时,可以将缓存中的第一页面及根布局对象删除,从而释放缓存空间。

进一步地,本申请还可以根据用户的实际需要,对缓存中第一页面上的控件进行删减,从而达到动态调整的目的,在页面打开速度与缓存空间占用之间寻找一个合适的阈值。

参见图5,图5为本申请实施例公开的又一种页面显示方法流程图。

如图5所示,该方法包括:

步骤S500、接收用户打开第一页面的请求;

用户可以在非第一页面的其它页面中提交第一页面的打开请求,例如用户在其它页面中点击某个与第一页面链接的按钮、图标等。

步骤S510、判断所述第一页面是否被打开过,若是,执行步骤S520-S550,若否,执行步骤S560-S580;

步骤S520、在缓存中查找隐藏的第一页面及其对应的根布局对象;

其中,所述隐藏的第一页面为首次打开第一页面后,在退出第一页面时隐藏在缓存中的第一页面,所述根布局对象为首次打开所述第一页面时从内存读取并保存在缓存中的根布局对象,其中描述了第一页面所包含的控件。

步骤S530、判断所述第一页面当前的数据内容与所述隐藏的第一页面的数据内容是否相同,若不同,执行步骤S540;

具体地,页面的数据内容为页面内各控件内的数据内容,本步骤中对比数据内容时,判断第一页面当前各控件的数据内容与隐藏的第一页面上各控件的数据是否相同。

步骤S540、利用所述根布局对象,确定隐藏的第一页面所包含的控件,同时清除控件内的数据;

通过第一页面的根布局对象,能够找到隐藏的第一页面所包含的各个控件。对于查找到的各个控件,将其内的数据清空。

步骤S550、将所述第一页面当前的数据内容填充至所述控件中,并显示隐藏的第一页面;

步骤S560、从内存中读取所述第一页面对应的根布局对象;

具体地,在确定第一页面未被打开过时,直接从内存中调取第一页面对应的根布局对象。

步骤S570、利用所述第一页面对应的根布局对象确定所述第一页面所包含的控件;

步骤S580、将所述第一页面当前的数据内容填充至所述控件中,将控件显示在第一页面上。

相比于上述实施例,本实施例介绍了在确定第一页面为首次打开时的处理逻辑。在首次打开第一页面时,需要从内存中调取第一页面对应的根布局对象,根据根布局对象查找第一页面所包含的控件,进而将第一页面当前的数据内容填充到控件中,并进行显示。

下面对本申请实施例提供的页面显示装置进行描述,下文描述的页面显示装置与上文描述的页面显示方法可相互对应参照。

参见图6,图6为本申请实施例公开的一种页面显示装置结构示意图。

如图6所示,该装置包括:

页面打开请求接收单元61,用于接收用户打开第一页面的请求;

页面打开记录判断单元62,用于判断所述第一页面是否被打开过;

缓存查询单元63,用于在所述页面打开记录判断单元62的判断结果为是时,在缓存中查找隐藏的第一页面及其对应的根布局对象,所述隐藏的第一页面为首次打开第一页面后在退出第一页面时隐藏在缓存中的第一页面,所述根布局对象为首次打开所述第一页面时从内存读取并保存在缓存中的根布局对象,其中描述了第一页面所包含的控件;

数据内容判断单元64,用于判断所述第一页面当前的数据内容与所述隐藏的第一页面的数据内容是否相同;

第一根布局对象利用单元65,用于在所述数据内容判断单元64的判断结果为否时,利用所述隐藏的第一页面对应的根布局对象,确定隐藏的第一页面所包含的控件,同时清除控件内的数据;

第一页面显示单元66,用于将所述第一页面当前的数据内容填充至所述控件中,并显示隐藏的第一页面。

本申请实施例提供的页面显示装置,在首次打开第一页面时,从内存中 读取根布局对象并保存在缓存中,同时在退出第一页面时将第一页面隐藏在缓存中,进而当再次接收到用户请求打开第一页面时,从缓存中查找隐藏的第一页面及其对应的根布局对象,判断第一页面当前的数据内容与隐藏的第一页面的数据内容是否相同,如果不同,则利用隐藏的第一页面对应的根布局对象,确定隐藏的第一页面所包含的控件,同时清除控件内的数据,将第一页面当前的数据内容填充至所述控件中,显示隐藏的第一页面。本申请在首次打开第一页面时将根布局对象保存在缓存中,同时在退出第一页面时将第一页面隐藏在缓存中,因此在后续再次打开第一页面时,可以直接从缓存中调取根布局对象,相比于从内存中读取根布局对象,时间大大缩短。

同时,本申请利用第一页面当前的数据内容,对隐藏的第一页面中控件内的数据进行更新,然后进行显示,使得显示的第一页面为内容数据更新后的第一页面。

可选的,本申请实施例公开了上述页面显示装置的另一种可选结构,在上述基础上,页面显示装置还可以包括:

第二页面显示单元,用于在所述数据内容判断单元的判断结果为是时,将隐藏的第一页面进行显示。

可选的,本申请实施例公开了上述页面显示装置的又一种可选结构,在上述基础上,页面显示装置还可以包括:

页面跳转请求接收单元,用于接收用户从所述第一页面跳转到第二页面的请求;

页面及对象隐藏单元,用于将当前显示的第一页面及其对应的根布局对象隐藏到缓存中,显示第二页面。

可选的,本申请实施例公开了上述页面显示装置的又一种可选结构,在上述基础上,页面显示装置还可以包括:

清除指令接收单元,用于接收用户通过所述第二页面输入的清除指令;

页面及对象清除单元,用于将隐藏的第一页面及其对应的根布局对象从缓存中删除。

可选的,本申请实施例公开了上述页面显示装置的又一种可选结构,在上述基础上,页面显示装置还可以包括:

内存查询单元,用于在所述页面打开记录判断单元的判断结果为否时,从内存中读取所述第一页面对应的根布局对象;

第二根布局对象利用单元,用于利用所述第一页面对应的根布局对象确定所述第一页面所包含的控件;

第三页面显示单元,用于将所述第一页面当前的数据内容填充至所述控件中,将控件显示在第一页面上。

本申请实施例还提供一种终端,该终端包括上述所述的页面显示装置。对于页面显示装置的描述可参照上文对应部分描述,此处不再赘述。

本实施例对终端的硬件结构进行介绍,参见图7,图7为本申请实施例提供的终端的硬件结构示意图。如图7所示,该终端可以包括:

处理器1,通信接口2,存储器3,通信总线4,和显示屏5;

其中处理器1、通信接口2、存储器3和显示屏5通过通信总线4完成相互间的通信;

可选的,通信接口2可以为通信模块的接口,如GSM模块的接口;

处理器1,用于执行程序;

存储器3,用于存放程序;

程序可以包括程序代码,所述程序代码包括处理器的操作指令。

处理器1可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本申请实施例的一个或多个集成电路。

存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。

其中,程序可具体用于:

接收用户打开第一页面的请求;

判断所述第一页面是否被打开过;

若是,在缓存中查找隐藏的第一页面及其对应的根布局对象,所述隐藏的第一页面为首次打开第一页面后在退出第一页面时隐藏在缓存中的第一页 面,所述根布局对象为首次打开所述第一页面时从内存读取并保存在缓存中的根布局对象,其中描述了第一页面所包含的控件;

判断所述第一页面当前的数据内容与所述隐藏的第一页面的数据内容是否相同;

若不同,则利用所述隐藏的第一页面对应的根布局对象,确定隐藏的第一页面所包含的控件,同时清除控件内的数据;

将所述第一页面当前的数据内容填充至所述控件中,并显示隐藏的第一页面。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1