一种页面切换方法及电子设备与流程

文档序号:15347732发布日期:2018-09-04 22:57阅读:127来源:国知局

本公开涉及一种页面切换方法及电子设备,用于在应用程序开发时,对不同显示状态的页面进行切换。



背景技术:

在android应用程序的开发过程中页面通常会有多种显示状态,最常见的划分是加载状态、加载失败状态、加载成功状态、加载权限错误状态等。现有技术对不同显示状态的页面进行切换时,通常是工程师手动来进行多个状态页面之间的切换,这样控制起来会非常复杂。例如需要先隐藏前一个状态页面再显示后一个状态页面的控制逻辑,尤其是随着状态页面数量的递增,那么控制逻辑的复杂度会大幅度的提升,这样就会极大的提高开发者的工作量,同时稍有不慎就很容易显示出错误页面。

另外,现有技术对多个状态页面切换时,当状态页面不再显示的时候会在内存中进行销毁,这样也就导致下次再次加载该页面的时候需要重新载入内存,这样就会导致加载速度变得异常慢。使得用户体验大幅度的降低。



技术实现要素:

本公开提供一种页面切换方法,方法包括:创建2n个缓存区,其中,前n个缓存区设置在显示内存之前,后n个缓存区设置在所述显示内存之后,n为大于等于1的整数;加载当前显示页面至所述显示内存,加载多个未显示页面至所述2n个缓存区;通过左右移动所述2n个缓存区,使得至少一个缓存区中的未显示页面加载至所述显示内存中,以对该未显示页面进行显示。

可选地,方法还包括:创建一个枚举数组,所述枚举数组中存储有多个数值连续的枚举值,所述多个按整数数值连续的枚举值从小到大分别对应从左到右存储的多个未显示页面;获取当前显示页面所对应的枚举值a,同时,获取需要切换的未显示页面所对应的枚举值b;当a>b时,向右移动所述2n个缓存区a-b个距离,当a≤b时,向右移动所述2n个缓存区b-a个距离,以使所述需要切换的未显示页面加载至所述显示内存中,从而对该未显示页面进行显示。

可选地,方法还包括:为每个页面设置一个句柄,每个页面的句柄的值为该页面所对应的枚举值,其中,通过获取所述页面的句柄来获取页面所对应的枚举值。

可选地,方法还包括:创建一个管理栈,将在显示内存中进行显示过的页面所对应的句柄存储在所述管理栈中。

可选地,页面为应用程序开发中状态显示页面。

本公开还提供一种电子设备,包括:显示器,用于显示页面;处理器;存储器,其存储有计算机可执行程序,该程序在被所述处理器执行时,使得所述处理器执行:创建2n个缓存区,其中,前n个缓存区设置在显示内存之前,后n个缓存区设置在所述显示内存之后,n为大于等于1的整数;加载当前显示页面至所述显示内存,加载多个未显示页面至所述2n个缓存区;通过左右移动所述2n个缓存区,使得至少一个缓存区中的未显示页面加载至所述显示内存中,以对该未显示页面进行显示。

可选地,处理器还执行:创建一个枚举数组,所述枚举数组中存储有多个按整数数值连续的枚举值,所述多个数值连续的枚举值从小到大分别对应从左到右存储的多个未显示页面;获取当前显示页面所对应的枚举值a,同时,获取需要切换的未显示页面所对应的枚举值b;当a>b时,向右移动所述2n个缓存区a-b个距离,当a≤b时,向右移动所述2n个缓存区b-a个距离,以使所述需要切换的未显示页面加载至所述显示内存中,从而对该未显示页面进行显示。

可选地,处理器还执行:为每个页面设置一个句柄,每个页面的句柄的值为该页面所对应的枚举值,其中,通过获取所述页面的句柄来获取页面所对应的枚举值。

可选地,处理器还执行:创建一个管理栈,将在显示内存中进行显示过的页面所对应的句柄存储在所述管理栈中。

可选地,页面为应用程序开发中状态显示页面。

附图说明

图1是本公开实施例提供的页面切换的示意图。

图2是本公开实施例提供的页面切换方法的流程图。

图3示意性示出了根据本公开的实施例的页面切换系统的框图。

图4示意性示出了根据本公开的另一实施例的的框图。

具体实施方式

以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。

在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。这里使用的词语“一”、“一个(种)”和“该”等也应包括“多个”、“多种”的意思,除非上下文另外明确指出。此外,在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。

在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。

附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。

因此,本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。在本公开的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(hdd);光存储装置,如光盘(cd-rom);存储器,如随机存取存储器(ram)或闪存;和/或有线/无线通信链路。

图1是本公开实施例提供的页面切换的示意图,如图1所示,显示内存是用于显示页面的存储区域,本实施例另外设置了创建2n个缓存区,其中,前n个缓存区设置在显示内存之前,后n个缓存区设置在显示内存之后,是显示内存处于2n个缓存区的正中间。这里所说的“之前”、“之后”是指在地址上连续的相邻存储区域,而且,缓存区的大小与显示内存的大小一致。在创建了上述缓存区之后,加载当前显示页面至显示内存,加载多个未显示页面至所述2n个缓存区。可以理解的是,当进行上述页面加载后,显示屏中显示的为显示内存的页面,而缓存区中的页面为本实施例即将进行切换的页面。当需要进行页面切换时,通过左右移动2n个缓存区,使得至少一个缓存区中的未显示页面加载至显示内存中,以对该未显示页面进行显示。本公开实施例所提的“左右移动”是指在地址空间上按照地址的前后顺序移动,其中,“左移”是指在地址空间上向前一个页面的地址移动,“右移”是指在地址空间上向后一个页面的地址移动。例如,对2n个缓存区整体向右移动一个距离,使得缓存区1中的页面加载至显示内存中,从而使得缓存区1的页面得到显示;又例如,对2n个缓存区整体向左移动一个距离,使得缓存区2中的页面加载至显示内存中,从而使得缓存区2的页面得到显示。

图2是本公开实施例提供的页面切换方法的流程图,如图2所示,方法包括以下步骤:

s1,创建2n个缓存区,其中,前n个缓存区设置在显示内存之前,后n个缓存区设置在显示内存之后,n为大于等于1的整数。本实施例中,缓存区的大小与显示内存大小是完全一致的,并且,缓存区的个数为偶数个,是为了使显示内存能够处于2n个缓存区的正中间,以方便后续对缓存区的移动。

s2,加载当前显示页面至显示内存,加载多个未显示页面至2n个缓存区。一般来说,缓存区的数量2n个是根据多个未显示页面的数量来设置的,当多个未显示页面的数量为奇数时,本实施例使一个缓存区的内容为空。

s3,创建一个枚举数组,所述枚举数组中存储有多个数值连续的枚举值,多个按整数数值连续的枚举值从小到大分别对应从左到右存储的多个页面。实施例通过设置一个枚举数组,是为了方便系统识别出每个页面的位置,以如图1举例来说,可以令每个缓存区中页面所对应的枚举值从左到右依次为-n、-n-1、-n-2…-1、0、1…n-1、n(其中,0所对应的页面存储在显示内存中)。另外,为了方便获取每个页面的枚举值,本实施例为每个页面设置一个句柄(id),每个页面的句柄的值为该页面所对应的枚举值,其中,系统通过获取页面的句柄来获取页面所对应的枚举值。

s4,获取当前显示页面所对应的枚举值a,同时,获取需要切换的未显示页面所对应的枚举值b。通过步骤s3的介绍,系统首先存储有每个页面的句柄,以方便系统识别出各个页面,以图1中缓冲区1和显示内存为例,首先分别获取显示内存和缓冲区1中页面的句柄ida、idb,然后获取ida和idb的值,即ida=0和idb=-1。

s5,当a>b时,向右移动2n个缓存区a-b个距离,当a≤b时,向右移动所述2n个缓存区b-a个距离,以使所述需要切换的未显示页面加载至所述显示内存中,从而对该未显示页面进行显示。仍以步骤s4中的举例来说,由于ida>idb,则向右移动2n个缓存区ida-idb个距离,即1个距离,这里所说的“一个距离”是指内存中一个页面大小的地址长度。当2n个缓存区向右移动1个距离后,图1所示的缓存区1移动到显示内存中,使得缓存区1中的页面加载至显示内存,从而进行了页面切换。

另外,本实施例还专门创建一个管理栈,将在显示内存中进行显示过的页面所对应的句柄存储在所述管理栈中,以方便用户查看已经浏览过的页面。

图3示意性示出了根据本公开的实施例的页面切换系统的框图。

如图3所示,页面切换系统300包括缓存区创建模块310、页面加载模块320、枚举数组创建模块330、枚举值获取模块340、和缓存区移动模块350。该页面切换系统300可以执行上面参考图2描述的方法,以实现多个页面之间的切换。

具体地,缓存区创建模块310创建2n个缓存区,其中,前n个缓存区设置在显示内存之前,后n个缓存区设置在显示内存之后。

页面加载模块320加载当前显示页面至显示内存,加载多个未显示页面至2n个缓存区。

枚举数组创建模块330创建一个枚举数组,所述枚举数组中存储有多个数值连续的枚举值,多个按整数数值连续的枚举值从小到大分别对应从左到右存储的多个页面。

枚举值获取模块340获取当前显示页面所对应的枚举值a,同时,获取需要切换的未显示页面所对应的枚举值b。

缓存区移动模块350当a>b时,向右移动2n个缓存区a-b个距离,当a≤b时,向右移动所述2n个缓存区b-a个距离,以使所述需要切换的未显示页面加载至所述显示内存中,从而对该未显示页面进行显示。

可以理解的是,缓存区创建模块310、页面加载模块320、枚举数组创建模块330、枚举值获取模块340、和缓存区移动模块350可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本发明的实施例,缓存区创建模块310、页面加载模块320、枚举数组创建模块330、枚举值获取模块340、和缓存区移动模块350中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以以对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式的适当组合来实现。或者,缓存区创建模块310、页面加载模块320、枚举数组创建模块330、枚举值获取模块340、和缓存区移动模块350中的至少一个可以至少被部分地实现为计算机程序模块,当该程序被计算机运行时,可以执行相应模块的功能。

图4示意性示出了根据本公开的另一实施例的的框图。

如图4所示,电子设备400包括处理器410、计算机可读存储介质420、显示器430。该电子设备400可以执行上面参考图2描述的方法,以实现多个页面之间的切换。

具体地,处理器410例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic)),等等。处理器410还可以包括用于缓存用途的板载存储器。处理器410可以是用于执行参考图2描述的根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。

计算机可读存储介质420,例如可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,可读存储介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。可读存储介质的具体示例包括:磁存储装置,如磁带或硬盘(hdd);光存储装置,如光盘(cd-rom);存储器,如随机存取存储器(ram)或闪存;和/或有线/无线通信链路。

计算机可读存储介质420可以包括计算机程序421,该计算机程序421可以包括代码/计算机可执行指令,其在由处理器410执行时使得处理器410执行例如上面结合图2所描述的方法流程及其任何变形。

计算机程序421可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序421中的代码可以包括一个或多个程序模块,例如包括421a、模块421b、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器410执行时,使得处理器410可以执行例如上面结合图2所描述的方法流程及其任何变形。

根据本发明的实施例,缓存区创建模块310、页面加载模块320、枚举数组创建模块330、枚举值获取模块340、和缓存区移动模块350中的至少一个可以实现为参考图3描述的计算机程序模块,其在被处理器410执行时,可以实现上面描述的相应操作。

尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

以上所述的具体实施例,对本公开的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本公开的具体实施例而已,并不用于限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

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