CN110413368B - 页面切换方法、装置、电子设备及机器可读存储介质 - Google Patents
页面切换方法、装置、电子设备及机器可读存储介质 Download PDFInfo
- Publication number
- CN110413368B CN110413368B CN201910723979.8A CN201910723979A CN110413368B CN 110413368 B CN110413368 B CN 110413368B CN 201910723979 A CN201910723979 A CN 201910723979A CN 110413368 B CN110413368 B CN 110413368B
- Authority
- CN
- China
- Prior art keywords
- page
- active component
- component corresponding
- target
- current
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Telephone Function (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请实施例提供了一种页面切换方法、装置、电子设备及机器可读存储介质,通过针对应用程序的活动组件创建多个页面活动组件,每个页面活动组件与活动组件具有相同的生命周期,利用一个页面活动组件来管理应用程序的一个页面。由于页面活动组件的生命周期与活动组件的生命周期相同,对页面活动组件的管理相对容易。在接收到应用程序的页面切换操作以将应用程序的当前页面切换到目标页面时,运行与目标页面对应的页面活动组件,并将当前页面对应的页面活动组件的页面视图从内存中删除且保存当前页面对应的页面活动组件的属性信息。如此,避免了过多的页面视图对内存占用的问题,且基于保存的属性信息在后续需要进行页面恢复时,可实现快速恢复。
Description
技术领域
本申请涉及显示技术领域,具体而言,涉及一种页面切换方法、装置、电子设备及机器可读存储介质。
背景技术
活动(Activity)组件是安卓操作系统的表现层,基于安卓操作系统的应用程序的每一个页面都可能是一个活动组件。现有技术中,在利用活动组件来实现页面的切换时,常用的方式有两种。一种是整个应用程序中包含多个活动组件,应用程序中的每个页面由一个活动组件来实现,不同页面的切换由活动组件的切换来实现。这种利用多个活动组件来实现一个应用的方式,存在占用较多内存的缺陷。另一种方式是采用一个活动组件以及多个碎片(Fragment)组合的方式来实现,每个页面由一个Fragment来实现,整个应用程序只有一个活动组件,页面的切换通过Fragment的切换来实现。这种方式,由于Fragment的生命周期比活动组件的生命周期长,存在难以管理的问题。并且,由于Fragment本身生命周期的一些机制,导致容易出现页面视图重叠的问题。
发明内容
本申请的目的包括,例如,提供了一种页面切换方法、装置、电子设备及机器可读存储介质,其能够减少对内存的占用,且避免出现页面视图重叠的现象。
本申请的实施例可以这样实现:
第一方面,本申请实施例提供一种页面切换方法,应用于安装有安卓系统的电子设备,以实现电子设备中安装的应用程序的页面切换操作管理,所述方法包括:
针对所述应用程序的活动组件创建多个关联的页面活动组件,每个所述页面活动组件与所述活动组件具有相同的生命周期,一个页面活动组件用于管理所述应用程序的一个页面;
在接收到对所述应用程序的页面切换操作以将应用程序的当前页面切换到目标页面时,运行与所述目标页面对应的页面活动组件,并将所述当前页面对应的页面活动组件的页面视图从内存中删除且保存所述当前页面对应的页面活动组件的属性信息。
在可选的实施方式中,所述针对所述应用程序的活动组件创建多个关联的页面活动组件的步骤,包括:
针对所述应用程序创建一个活动组件,并创建多个页面活动组件;
将所述活动组件的属性信息添加至清单文件中,并将各所述页面活动组件与所述活动组件关联。
在可选的实施方式中,所述运行与所述目标页面对应的页面活动组件,并将所述当前页面对应的页面活动组件的页面视图从内存中删除且保存所述当前页面对应的页面活动组件的属性信息的步骤,包括:
将所述目标页面对应的页面活动组件的属性信息存入页面管理堆栈中;
将所述目标页面对应的页面活动组件中,用于执行所述目标页面的显示操作的显示任务存入任务管理堆栈中,并将所述当前页面对应的页面活动组件中,用于执行所述当前页面的关闭操作的关闭任务存入所述任务管理堆栈中;
执行所述任务管理堆栈中的关闭任务,将所述当前页面对应的页面活动组件的页面视图从内存中删除,并保存所述当前页面对应的页面活动组件的属性信息;
执行所述任务管理堆栈中的显示任务,对所述目标页面进行显示。
在可选的实施方式中,所述执行所述任务管理堆栈中的显示任务,以显示所述目标页面的步骤,包括:
创建所述目标页面对应的页面活动组件的页面视图;
通过所述目标页面对应的页面活动组件调用与其关联的活动组件的视图目录设置函数,以将所述目标页面对应的页面活动组件的页面视图设置到显示窗口上,以显示所述页面视图。
在可选的实施方式中,所述方法还包括:
在接收到将所述目标页面恢复至所述当前页面的恢复操作时,将所述目标页面对应的页面活动组件的属性信息从所述页面管理堆栈中移除。
在可选的实施方式中,所述方法还包括:
在接收到将所述目标页面恢复至所述当前页面的恢复操作时,获取保存的所述当前页面对应的页面活动组件的属性信息;
创建所述当前页面对应的页面活动组件的页面视图;
根据所述当前页面对应的页面活动组件的属性信息以及页面视图,运行所述当前页面对应的页面活动组件。
第二方面,本申请实施例提供一种页面切换装置,应用于安装有安卓系统的电子设备,以实现电子设备中安装的应用程序的页面切换操作管理,所述装置包括:
建立模块,用于针对所述应用程序的活动组件创建多个关联的页面活动组件,每个所述页面活动组件与所述活动组件具有相同的生命周期,一个页面活动组件用于管理所述应用程序的一个页面;
切换模块,用于在接收到对所述应用程序的页面切换操作以将应用程序的当前页面切换到目标页面时,运行与所述目标页面对应的页面活动组件,并将所述当前页面对应的页面活动组件的页面视图从内存中删除且保存所述当前页面对应的页面活动组件的属性信息。
在可选的实施方式中,所述切换模块,用于:
将所述目标页面对应的页面活动组件的属性信息存入页面管理堆栈中;
将所述目标页面对应的页面活动组件的执行所述目标页面的显示操作的显示任务存入所述任务管理堆栈中,并将所述当前页面对应的页面活动组件的执行所述当前页面的关闭操作的关闭任务存入任务管理堆栈中;
执行所述任务管理堆栈中的关闭任务,以将所述当前页面对应的页面活动组件的页面视图从内存中删除且保存所述当前页面对应的页面活动组件的属性信息;
执行所述任务管理堆栈中的显示任务,以显示所述目标页面。
第三方面,本申请实施例提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述前述实施方式中任一项所述的方法。
第四方面,本申请实施例提供一种机器可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前述实施方式中任一项所述的方法。
本申请实施例的有益效果包括,例如:
通过针对应用程序的活动组件创建多个页面活动组件,每个页面活动组件与活动组件具有相同的生命周期,利用一个页面活动组件来管理应用程序的一个页面。由于页面活动组件的生命周期与活动组件的生命周期相同,对页面活动组件的管理相对容易。在接收到应用程序的页面切换操作以将应用程序的当前页面切换到目标页面时,运行与目标页面对应的页面活动组件,并将当前页面对应的页面活动组件的页面视图从内存中删除,然后保存当前页面对应的页面活动组件的属性信息。如此,避免了过多的页面视图对内存占用的问题,且基于保存的属性信息在后续需要进行页面恢复时,可实现快速恢复。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的页面切换方法的流程图;
图2为图1中步骤S120的子步骤的流程图;
图3为图2中步骤S124的子步骤的流程图;
图4为本申请实施例提供的页面切换方法的另一流程图;
图5为本申请实施例提供的电子设备的结构组件示意图;
图6为本申请实施例提供的页面切换装置的功能模块框图。
图标:100-电子设备;110-存储介质;120-处理器;130-页面切换装置;131-建立模块;132-切换模块;140-通信接口。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
需要说明的是,在不冲突的情况下,本申请的实施例中的特征可以相互结合。
基于安卓操作系统的应用程序,其页面主要包含页面视图和页面数据两部分。当从页面A进入页面B时,页面A的状态变为不可见状态,页面B的状态变为可见状态。若采用现有技术中的利用多个活动组件来管理应用程序中的页面时,在页面A的状态变为不可见状态之后,页面A的页面视图和页面数据都会保存在内存中,导致在进行多次页面切换操作之后,页面视图将占用过多存储资源。
而现有技术中采用多个Fragment来实现页面切换的方式,其中,Fragment的生命周期比活动组件的生命周期要长,例如onAttach、onCreateView、onActivityCreated、onDestroyView和onDetach都是Fragment所独有的生命周期。并且,Fragment的初始化fragment参数可以从getArguments()获得,但是,当Fragment附加到活动组件之后,就无法再调用setArguments(),所以只能在onAttach中完成参数添加。而且,若Fragment使用不当,容易出现视图重叠问题。上述问题原因在于活动组件的创建、销毁完全托管到systemserver(ams)进程,而Fragment一般是手动创建一个对象再添加到system server进程中。fragment生命周期开始于创建,结束于移除(remove)。不管应用程序中间怎么变化,例如崩溃、进程被回收等,只要没有remove,安卓系统框架都会自动创建、恢复Fragment的状态。
基于上述研究发现,本申请提供了一种创建与应用程序中的活动组件相关联的多个页面活动组件(Page Activity)的方案,利用多个页面活动组件及一个活动组件配合的方式进行页面切换管理。其中,页面活动组件相当于虚拟的活动组件,其具有与活动组件相同的生命周期,在进行页面切换时,仅保存切换之前的页面活动组件的属性信息而将其页面视图从内存中删除,如此,使得对页面活动组件的管理更为容易,且避免造成占用过多存储资源的问题,具体的实现方案在下面结合附图进行详细描述。
请参阅图1,为本申请一个实施例的页面切换方法的流程图,该方法用于实现电子设备中安装的应用程序的页面切换操作的管理,该电子设备为安装有安卓系统的智能设备,例如智能电视、网络电视等显示终端设备。应当理解,在其它实施例中,本实施例的页面切换方法其中部分步骤的顺序可以根据实际需要相互交换,或者其中的部分步骤也可以省略或删除。该页面切换方法的详细步骤介绍如下。
步骤S110,针对所述应用程序的活动组件创建多个关联的页面活动组件,每个所述页面活动组件与所述活动组件具有相同的生命周期,一个页面活动组件用于管理所述应用程序的一个页面。
步骤S120,在接收到对所述应用程序的页面切换操作以将应用程序的当前页面切换到目标页面时,运行与所述目标页面对应的页面活动组件,并将所述当前页面对应的页面活动组件的页面视图从内存中删除且保存所述当前页面对应的页面活动组件的属性信息。
活动组件(Activity)是页面呈现的容器,若要将页面呈现给用户,如果用活动组件来实现,需要先创建活动组件这个容器本身,然后创建页面视图,最终将页面视图放在容器中,最后呈现给用户。本实施例中,通过创建多个与活动组件关联的页面活动组件(PageActivity),利用活动组件和多个页面活动组件配合的方式实现页面切换操作。
在本实施例中,只需要在应用程序的第一个页面创建时,创建一次活动组件,以后的其他页面都不用再创建活动组件这个容器。在后续页面切换时,只需要通过页面活动组件创建页面视图即可。
在本实施例中,可针对应用程序创建一个活动组件,并创建多个页面活动组件。将活动组件属性信息注册添加至清单文件(AndroidManifest.xml)中,将各页面活动组件与活动组件进行关联。其中,各页面活动组件具有属性信息,页面活动组件的属性信息包括页面活动组件的生命周期状态、管理的页面的名称、管理的页面的ID以及不同页面之间要传递的数据信息等。各个页面活动组件的属性信息可分别保存至对应的页面标识集合(ActivityID)中。此外,可为各个页面标识集合进行编号生成对应的id,在从当前页面切换至目标页面时,获得目标页面的ID,从而可以确定用于管理该目标页面的页面活动组件,并根据其对应的页面标识集合的id获得对应的页面标识集合,进而获得其属性信息。而页面活动组件的生命周期包括创建(onCreate)、启动(on Start)、恢复(on Resume)、暂停(onPause)、停止(on Stop)和销毁(on Destroy)等。
本实施例中,可通过以下的代码实现对页面活动组件及活动组件的创建,以及其关联关系的建立等,其中,为了便于区别页面活动组件和活动组件,将页面活动组件记为Page Activity,将活动组件记为RealActivity,具体的创建代码举例如下:
Public abstract class PageActivity{
Private static final String TAG=”PageActivity”;
Protected SingleActivitymRealActivity;
Protected ActivityID id;
Private String mPageName;
Private Set<MProgressView>mProgressViewSet;
Protected Set<BasePlayController>mPlayControllerSet;
Protected booleanhasHoldKeyDownAction=false;
……
}
请结合参阅图2,在将当前页面切换至目标页面时,可通过以下方式实现:
步骤S121,将所述目标页面对应的页面活动组件的属性信息存入页面管理堆栈中。
步骤S122,将所述目标页面对应的页面活动组件中,用于执行所述目标页面的显示操作的显示任务存入任务管理堆栈中,并将所述当前页面对应的页面活动组件中,用于执行所述当前页面的关闭操作的关闭任务存入所述任务管理堆栈中。
步骤S123,执行所述任务管理堆栈中的关闭任务,将所述当前页面对应的页面活动组件的页面视图从内存中删除,并保存所述当前页面对应的页面活动组件的属性信息。
步骤S124,执行所述任务管理堆栈中的显示任务,对所述目标页面进行显示。
本实施例中,可将各页面活动组件的属性信息分别保存至对应的页面标识集合(ActivityID)中,将各活动组件的需要执行的操作(例如要完成的动作和接下来要经历的生命周期等)分别记录在对应的页面任务集合(PageTask)中。
在运行过程中,利用页面管理堆栈来维护各个页面活动组件实例的出现顺序,每次新启动一个页面活动组件时,即将该页面活动组件的页面标识集合存入页面管理堆栈中。
同时应用程序可利用任务管理堆栈记录每次操作产生的页面任务列表,例如在页面切换操作时,可将页面切换之后的目标页面对应的页面活动组件的用于实现目标页面显示的显示任务存入任务管理堆栈中。其中,该显示任务可通过执行页面活动组件的如下生命周期来实现:创建(onCreate)、启动(on Start)、恢复(on Resume)。
其中,在创建(onCreate)阶段,可将目标页面对应的页面活动组件的页面标识集合中的生命周期状态设置为创建状态,同时初始化页面布局,将页面布局设置到活动组件中。例如,可通过以下代码执行生命周期中的创建(onCreate)阶段:
在执行到启动(on Start)阶段时,可将目标页面对应的页面活动组件的页面标识集合中的生命周期状态修改为启动状态,并且完成目标页面相关的一些初始化操作。例如,可通过以下代码执行生命周期中的启动(on Start):
在恢复(on Resume)阶段,可将目标页面对应的页面活动组件的页面标识集合中的生命周期状态修改为恢复状态,并且执行目标页面的显示操作。例如,可通过以下代码执行恢复(on Resume)操作:
此外,可将页面切换之前的当前页面对应的页面活动组件的关闭任务存入页面管理堆栈中。其中,关闭任务可通过执行页面活动组件的如下生命周期来实现:暂停(onPause)、停止(on Stop)和销毁(on Destroy)。
其中,在暂停(on Pause)阶段,可将当前页面对应的页面活动组件的页面标识集合中的生命周期状态修改为暂停状态,并为当前页面停止做一些准备工作。可通过以下代码实现生命周期中的暂停(on Pause)操作:
在执行到停止(on Stop)阶段时,将当前页面对应的页面活动组件的生命周期状态修改为停止状态。保存当前页面的属性信息,其中,保存的属性信息主要用于从其他页面恢复至当前页面时进行数据恢复。例如,停止(onStop)操作可通过以下代码实现:
在销毁(on Destroy)阶段时,将当前页面对应的页面活动组件的生命周期状态修改为销毁状态,并且将当前页面对应的页面活动组件的页面视图从内存中删除。页面视图一旦从内存中删除后,后续只能通过重新建立的方式进行恢复。例如,可通过以下代码实现生命周期中的销毁(on Destroy)阶段:
本实施例中,将目标页面对应的页面活动组件的显示任务以及当前页面对应的页面活动组件的关闭任务依次入栈,然后再顺序执行,从而实现当前页面的关闭以及目标页面的显示。
当然应当理解,若为首次页面显示,即不存在前一个页面时,则只需将显示任务添加至任务管理堆栈中,直接执行任务管理堆栈中的显示任务,以实现页面的显示即可。
安卓系统中,每个页面都是一个显示窗口(window),只有将页面视图设置到window上,页面视图才会显示出来。由于页面活动组件并不能直接接触到window,因此,在本实施例中,页面活动组件只能通过调用活动组件的方式,来将页面视图设置到window上。
请参阅图3,在本实施例中,上述步骤S124可通过以下过程实现。
步骤S1241,创建所述目标页面对应的页面活动组件的页面视图。
步骤S1242,通过所述目标页面对应的页面活动组件调用与其关联的活动组件的视图目录设置函数,以将所述目标页面对应的页面活动组件的页面视图设置到显示窗口上,以显示所述页面视图。
本实施例中,活动组件的创建只在第一个页面创建时,创建一次,以后的其他页面都不用再创建activity这个容器。在新启动一个页面时,只要创建对应的页面活动组件的页面视图就可以了,时间和性能开销都比较小。
由上述可知,通过注册的方式建立了各个页面活动组件与活动组件之间的关联关系。在通过目标页面对应的页面活动组件调用真实的活动组件时,即可根据该注册信息获得与其相关联的活动组件。通过该活动组件的视图目录设置函数(setContentView)将页面视图设置在window上,从而实现页面的显示。
例如,可通过以下代码实现页面活动组件调用活动组件的视图目标设置函数以进行页面显示的操作:
Protected final void setContentView(intlayoutResID){
mRealActivity.removeAllViews();
mRealActivity.setContentView(layoutResID);
}
Protected final void setContentView(View view){
mRealActivity.removeAllViews();
mRealActivity.setContentView(view);
}
在本实施中,若从当前页面切换至目标页面之后,又需要从目标页面恢复至当前页面时,可通过图4所示的流程实现,具体描述如下。
步骤S210,在接收到将所述目标页面恢复至所述当前页面的恢复操作时,获取保存的所述当前页面对应的页面活动组件的属性信息。
步骤S220,创建所述当前页面对应的页面活动组件的页面视图。
步骤S230,根据所述当前页面对应的页面活动组件的属性信息以及页面视图,运行所述当前页面对应的页面活动组件。
以智能电视为例进行说明,用户可通过与智能电视配套的遥控设备,或者是智能电视上的按键进行操作以实现页面的回退或者是下一个页面的切换。若当前操作为从上述的目标页面回退至上述的当前页面时,由于之前在从所述当前页面切换至所述目标页面时,将所述当前页面的属性信息进行了保存。因此,此时可直接获取保存的所述当前页面的属性信息。由于在从当前页面切换至目标页面时,为了减少对内存的占用而将当前页面的页面视图进行了销毁处理,因此,此时需要重新创建当前页面对应的页面活动组件的页面视图。
在获得当前页面对应的页面活动组件的页面视图和属性信息的基础上,同理,可按上述的,通过当前页面对应的页面活动组件调用与其关联的活动组件的视图目录设置函数,将当前页面对应的页面活动组件的页面视图设置在window上,从而实现当前页面的显示。
在本实施例中,若从当前页面切换至目标页面,则页面管理堆栈中存有当前页面及目标页面的属性信息,若再从目标页面切换至目标页面的下一个页面时,则该下一个页面的属性信息同样将添加至页面管理堆栈中。而若从当前页面切换至目标页面之后,再从目标页面恢复至当前页面,则需要将页面管理堆栈中所存的目标页面对应的页面活动组件的属性信息从页面管理堆栈中移除。
综上,本申请实施例提供的页面切换方案,通过建立与应用程序的活动组件相关联且与活动组件具有相同生命周期的多个页面活动组件,利用活动组件和多个页面活动组件来实现页面切换。在进行页面切换时,仅保存切换之前的页面活动组件的属性信息而将其页面视图从内存中删除,如此,使得对页面活动组件的管理更为容易,且避免造成占用过多存储资源的问题。
请参阅图5,为本申请实施例提供的电子设备100的示例性组件示意图。该电子设备100可包括存储介质110、处理器120、页面切换装置130及通信接口140。本实施例中,存储介质110与处理器120均位于电子设备100中且二者分离设置。然而,应当理解的是,存储介质110也可以是独立于电子设备100之外,且可以由处理器120通过总线接口来访问。可替换地,存储介质110也可以集成到处理器120中,例如,可以是高速缓存和/或通用寄存器。
页面切换装置130可以理解为上述电子设备100,或电子设备100的处理器120,也可以理解为独立于上述电子设备100或处理器120之外的在电子设备100控制下实现上述页面切换方法的软件功能模块。
如图6所示,上述页面切换装置130可以包括建立模块131及切换模块132,下面分别对该页面切换装置130的各个功能模块的功能进行详细阐述。
建立模块131,用于针对所述应用程序的活动组件创建多个关联的页面活动组件,每个所述页面活动组件与所述活动组件具有相同的生命周期,一个页面活动组件用于管理所述应用程序的一个页面。可以理解,该建立模块131可以用于执行上述步骤S110,关于该建立模块131的详细实现方式可以参照上述对步骤S110有关的内容。
切换模块132,用于在接收到对所述应用程序的页面切换操作以将应用程序的当前页面切换到目标页面时,运行与所述目标页面对应的页面活动组件,并将所述当前页面对应的页面活动组件的页面视图从内存中删除且保存所述当前页面对应的页面活动组件的属性信息。可以理解,该切换模块132可以用于执行上述步骤S120,关于该切换模块132的详细实现方式可以参照上述对步骤S120有关的内容。
作为一种可能的实施方式,其中,切换模块132可以具体用于:
将所述目标页面对应的页面活动组件的属性信息存入页面管理堆栈中;
将所述目标页面对应的页面活动组件中,用于执行所述目标页面的显示操作的显示任务存入任务管理堆栈中,并将所述当前页面对应的页面活动组件中,用于执行所述当前页面的关闭操作的关闭任务存入所述任务管理堆栈中;
执行所述任务管理堆栈中的关闭任务,将所述当前页面对应的页面活动组件的页面视图从内存中删除,并保存所述当前页面对应的页面活动组件的属性信息;
执行所述任务管理堆栈中的显示任务,对所述目标页面进行显示。
进一步地,本申请实施例还提供一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令被执行时实现上述实施例提供的页面切换方法。
综上所述,本申请提供一种页面切换方法、装置、电子设备100及机器可读存储介质,通过针对应用程序的活动组件创建多个页面活动组件,每个页面活动组件与活动组件具有相同的生命周期,利用一个页面活动组件来管理应用程序的一个页面。由于页面活动组件的生命周期与活动组件的生命周期相同,对页面活动组件的管理相对容易。在接收到应用程序的页面切换操作以将应用程序的当前页面切换到目标页面时,运行与目标页面对应的页面活动组件,并将当前页面对应的页面活动组件的页面视图从内存中删除且保存当前页面对应的页面活动组件的属性信息。如此,避免了过多的页面视图对内存占用的问题,且基于保存的属性信息在后续需要进行页面恢复时,可实现快速恢复。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (7)
1.一种页面切换方法,应用于安装有安卓系统的电子设备,以实现电子设备中安装的应用程序的页面切换操作管理,其特征在于,所述方法包括:
针对所述应用程序的活动组件创建多个关联的页面活动组件,每个所述页面活动组件与所述活动组件具有相同的生命周期,一个页面活动组件用于管理所述应用程序的一个页面;
在接收到对所述应用程序的页面切换操作以将应用程序的当前页面切换到目标页面时,运行与所述目标页面对应的页面活动组件,并将所述当前页面对应的页面活动组件的页面视图从内存中删除且保存所述当前页面对应的页面活动组件的属性信息;
所述运行与所述目标页面对应的页面活动组件,并将所述当前页面对应的页面活动组件的页面视图从内存中删除且保存所述当前页面对应的页面活动组件的属性信息的步骤,包括:
将所述目标页面对应的页面活动组件的属性信息存入页面管理堆栈中;将所述目标页面对应的页面活动组件中,用于执行所述目标页面的显示操作的显示任务存入任务管理堆栈中,并将所述当前页面对应的页面活动组件中,用于执行所述当前页面的关闭操作的关闭任务存入所述任务管理堆栈中;执行所述任务管理堆栈中的关闭任务,将所述当前页面对应的页面活动组件的页面视图从内存中删除,并保存所述当前页面对应的页面活动组件的属性信息;执行所述任务管理堆栈中的显示任务,对所述目标页面进行显示;
所述执行所述任务管理堆栈中的显示任务,以显示所述目标页面的步骤,包括:
创建所述目标页面对应的页面活动组件的页面视图;通过所述目标页面对应的页面活动组件调用与其关联的活动组件的视图目录设置函数,以将所述目标页面对应的页面活动组件的页面视图设置到显示窗口上,以显示所述目标页面。
2.根据权利要求1所述的页面切换方法,其特征在于,所述针对所述应用程序的活动组件创建多个关联的页面活动组件的步骤,包括:
针对所述应用程序创建一个活动组件,并创建多个页面活动组件;
将所述活动组件的属性信息添加至清单文件中,并将各所述页面活动组件与所述活动组件关联。
3.根据权利要求1所述的页面切换方法,其特征在于,所述方法还包括:
在接收到将所述目标页面恢复至所述当前页面的恢复操作时,将所述目标页面对应的页面活动组件的属性信息从所述页面管理堆栈中移除。
4.根据权利要求1-3任意一项所述的页面切换方法,其特征在于,所述方法还包括:
在接收到将所述目标页面恢复至所述当前页面的恢复操作时,获取保存的所述当前页面对应的页面活动组件的属性信息;
创建所述当前页面对应的页面活动组件的页面视图;
根据所述当前页面对应的页面活动组件的属性信息以及页面视图,运行所述当前页面对应的页面活动组件。
5.一种页面切换装置,应用于安装有安卓系统的电子设备,以实现电子设备中安装的应用程序的页面切换操作管理,其特征在于,所述装置包括:
建立模块,用于针对所述应用程序的活动组件创建多个关联的页面活动组件,每个所述页面活动组件与所述活动组件具有相同的生命周期,一个页面活动组件用于管理所述应用程序的一个页面;
切换模块,用于在接收到对所述应用程序的页面切换操作以将应用程序的当前页面切换到目标页面时,运行与所述目标页面对应的页面活动组件,并将所述当前页面对应的页面活动组件的页面视图从内存中删除且保存所述当前页面对应的页面活动组件的属性信息;
所述切换模块用于,将所述目标页面对应的页面活动组件的属性信息存入页面管理堆栈中;将所述目标页面对应的页面活动组件中,用于执行所述目标页面的显示操作的显示任务存入任务管理堆栈中,并将所述当前页面对应的页面活动组件中,用于执行所述当前页面的关闭操作的关闭任务存入所述任务管理堆栈中;执行所述任务管理堆栈中的关闭任务,将所述当前页面对应的页面活动组件的页面视图从内存中删除,并保存所述当前页面对应的页面活动组件的属性信息;执行所述任务管理堆栈中的显示任务,对所述目标页面进行显示;
所述切换模块具体用于,创建所述目标页面对应的页面活动组件的页面视图;通过所述目标页面对应的页面活动组件调用与其关联的活动组件的视图目录设置函数,以将所述目标页面对应的页面活动组件的页面视图设置到显示窗口上,以显示所述目标页面。
6.一种电子设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述权利要求1-4中任一项所述的方法。
7.一种机器可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910723979.8A CN110413368B (zh) | 2019-08-07 | 2019-08-07 | 页面切换方法、装置、电子设备及机器可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910723979.8A CN110413368B (zh) | 2019-08-07 | 2019-08-07 | 页面切换方法、装置、电子设备及机器可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110413368A CN110413368A (zh) | 2019-11-05 |
CN110413368B true CN110413368B (zh) | 2023-07-18 |
Family
ID=68366299
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910723979.8A Active CN110413368B (zh) | 2019-08-07 | 2019-08-07 | 页面切换方法、装置、电子设备及机器可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110413368B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111722903A (zh) * | 2020-06-16 | 2020-09-29 | 北京达佳互联信息技术有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN112417331A (zh) * | 2020-11-11 | 2021-02-26 | 北京五八信息技术有限公司 | 页面路由方法及装置、电子设备、计算机可读存储介质 |
CN113365150B (zh) * | 2021-06-04 | 2023-02-07 | 上海哔哩哔哩科技有限公司 | 视频处理方法和视频处理装置 |
CN115080151B (zh) * | 2022-07-22 | 2023-07-14 | 平安银行股份有限公司 | App启动流程控制方法、计算机可读存储介质及终端 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105630461A (zh) * | 2014-10-27 | 2016-06-01 | 航天信息股份有限公司 | 一种android应用界面的管理方法 |
CN106033372A (zh) * | 2015-03-19 | 2016-10-19 | 阿里巴巴集团控股有限公司 | 一种页面切换方法及装置 |
CN107506200A (zh) * | 2017-09-12 | 2017-12-22 | 深圳市金立通信设备有限公司 | 一种屏幕内容切换方法、终端及计算机可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170235473A1 (en) * | 2014-08-11 | 2017-08-17 | Huawei Technologies, Co., Ltd. | Method and Apparatus for Loading Application Program View, and Electronic Terminal |
-
2019
- 2019-08-07 CN CN201910723979.8A patent/CN110413368B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105630461A (zh) * | 2014-10-27 | 2016-06-01 | 航天信息股份有限公司 | 一种android应用界面的管理方法 |
CN106033372A (zh) * | 2015-03-19 | 2016-10-19 | 阿里巴巴集团控股有限公司 | 一种页面切换方法及装置 |
CN107506200A (zh) * | 2017-09-12 | 2017-12-22 | 深圳市金立通信设备有限公司 | 一种屏幕内容切换方法、终端及计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
Android中的Activity生命周期;关晶鑫 等;《电脑知识与技术》;第第9卷卷(第第11期期);第2713-2717页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110413368A (zh) | 2019-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110413368B (zh) | 页面切换方法、装置、电子设备及机器可读存储介质 | |
CN109614202B (zh) | 容器环境的备份、恢复以及镜像处理方法和系统 | |
CN112235383B (zh) | 容器服务集群节点调度方法及装置、服务器、存储介质 | |
WO2015035798A1 (zh) | 一种虚拟机管理方法和装置 | |
CN109857489B (zh) | 基于Android系统的开发系统、解耦方法和装置 | |
CN112596951A (zh) | 一种nas数据容灾方法、装置、设备及存储介质 | |
CN108958971A (zh) | 信息的备份方法、装置及设备 | |
WO2017045436A1 (zh) | 虚拟机故障处理方法和装置 | |
CN103389905B (zh) | 插件加载方法及系统 | |
CN105867962A (zh) | 系统升级的方法和装置 | |
CN110196749B (zh) | 虚拟机的恢复方法及装置、存储介质及电子装置 | |
CN110908832A (zh) | 一种云平台的虚拟机故障疏散方法、系统及计算机可读介质 | |
US20160217360A1 (en) | Methods and devices for processing information card | |
CN104615662A (zh) | 一种处理数据的方法、装置及终端设备 | |
CN105701409A (zh) | 一种实现文件虚拟化的方法及装置 | |
CN114281555A (zh) | 应用状态同步方法、装置、电子设备和存储介质 | |
CN112579361B (zh) | 备份数据重建方法、装置、设备及存储介质 | |
CN107179934A (zh) | 云计算环境中虚拟机自动还原的方法和系统 | |
CN104391685A (zh) | 在智能设备上对app创建多个用户空间的方法 | |
CN111399975A (zh) | 基于云计算管理平台的虚拟机快照管理方法、装置及系统 | |
US8954380B2 (en) | Application management method and information processing apparatus | |
CN105787359A (zh) | 进程守护方法和装置 | |
CN114598604B (zh) | 虚拟网络功能实例信息的监控方法、监控装置及终端 | |
CN115687820A (zh) | 页面恢复方法、装置及存储介质 | |
CN104750579B (zh) | 制作内存镜像的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210427 Address after: 200050 room 323, building 14, no.350 Xianxia Road, Changning District, Shanghai Applicant after: SHANGHAI ISMARTV NETWORK TECHNOLOGIES Co.,Ltd. Address before: Room 301-530, floor 3, building 1, No. 400, Fangchun Road, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai 200000 Applicant before: Shanghai Qianshan Network Technology Development Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |