智能设备上应用程序的界面显示方法与流程

文档序号:13912957阅读:350来源:国知局

本申请涉及智能设备的程序开发技术领域,尤其涉及一种智能设备上应用程序的界面显示方法。



背景技术:

目前,智能设备的操作系统中,主要包括安卓(android)操作系统和苹果(ios)操作系统。在现有的android操作系统中,提供了活动(activity)的开发技术框架,所述activity是android操作系统的基本的界面开发技术框架,在智能设备上所展示的页面基本上都是一个activity,即每一个界面都是一个区别于其它界面的activity,一个activity有自己基本的生命周期,所述生命周期包括创建、显示、消失、摧毁、等等。

例如,当用户在android操作系统的智能设备的a界面点击了一个按钮,跳转到b界面,在技术实现上其实就是从aactivity跳转到bactivity。

但是,由于android操作系统在从aactivity启动bactivity时,进程间的通信比较多,所以耗时会比较多,对应用户的界面跳转操作的响应速度较慢。例如用户在a界面,点击某个按钮跳转到b界面时,系统启动b界面的耗时会比较长,显得很迟钝,影响用户体验。并且,activity的生命周期和状态十分复杂,不利于开发者控制,从而产生一些复杂的问题,进一步影响用户体验。



技术实现要素:

有鉴于此,本发明的主要目的是提供一种智能设备上应用程序的界面显示方法,以提高界面跳转的响应速度,降低程序开发的复杂度。

本发明的技术方案是这样实现的:

一种智能设备上应用程序的界面显示方法,包括:

在应用程序中设置一管理模块,在该管理模块中注册该应用程序的界面信息;

为启动的应用程序申请一单例活动activity;向该单例activity注册一界面容器,在智能设备的屏幕上显示该界面容器;

应用程序中当前生命周期为显示状态的窗口,将需要显示的界面信息通知给所述管理模块;该管理模块创建需要显示的界面,再将该界面加载到所述界面容器中显示;管理模块将显示状态变化的相应界面的生命周期通知给该相应界面对应的窗口。

在本发明所述的一种优选实施例中,所述在该管理模块中注册该应用程序的界面信息,包括:

将该应用程序中的各个界面的界面标识及其对应的窗口信息注册到该管理模块中。

在本发明所述的一种优选实施例中,所述应用程序中当前生命周期为显示状态的窗口,将需要显示的界面信息通知给所述管理模块,包括:

所述应用程序中当前生命周期为显示状态的窗口,监视本窗口对应界面中的操作事件,当发生界面跳转的操作事件时,将跳转的目的界面的界面标识通知给所述管理模块。

在本发明所述的一种优选实施例中,所述管理模块创建需要显示的界面,包括:

所述管理模块确定该需要显示的界面对应的窗口,通过与该窗口的协作,创建出该需要显示的界面,得到该界面的展示信息。

在本发明所述的一种优选实施例中,所述将该界面加载到所述界面容器中显示,具体包括:

管理模块将所创建的界面的展示信息发送给所述界面容器,所述界面容器根据该界面的展示信息,在本界面容器中显示该界面。

在本发明所述的一种优选实施例中,所述将该界面加载到所述界面容器中显示,进一步包括:

所述界面容器在收到所述管理模块发送的界面的展示信息后,先显示指定的过渡动画,在过渡动画结束后,再根据该界面的展示信息,在本界面容器中显示该界面。

在本发明所述的一种优选实施例中,所述管理模块将显示状态变化的相应界面的生命周期通知给该相应界面对应的窗口,包括:

管理模块根据界面容器的显示状态的变化,确定界面跳转前后的界面的生命周期,其中确定跳转前的界面的生命周期为消失状态,将该生命周期通知给该跳转前的界面对应的窗口;确定跳转后的界面的生命周期为显示状态,将该生命周期通知给该跳转后的界面对应的窗口。

在本发明所述的一种优选实施例中,所述管理模块根据界面容器的显示状态的变化,确定界面跳转前后的界面的生命周期,包括:

如果所述界面容器在进行界面跳转时显示了指定的过渡动画,则界面容器将该过渡动画的开始结束时机通知给所述管理模块,所述管理模块根据该过渡动画的开始时机确定跳转前的界面的生命周期为消失状态,根据该过渡动画的结束时机确定跳转后的界面的生命周期为显示状态。

与现有技术相比,本发明不是为应用程序的每个界面都启动一个activity,而是只为一个应用程序启动一个activity,该activity是一个全局唯一的单例activity,然后再向该单例activity注册一界面容器,在智能设备的屏幕上显示该界面容器,也就是说当应用程序启动时,在屏幕上直接显示的是界面容器,而不是界面。应用程序的界面是通过管理模块和窗口的配合,后加载到界面容器上的,一个应用程序内部的界面切换也是在该应用程序对应的界面容器内部切换的,从视觉效果上看与现有技术中应用程序的界面显示和切换没有区别,但是由于一个应用程序的界面显示和切换仅仅用到了一个activity,减少了进程间的通信,在进行界面跳转时响应速度快,耗时少,同时由于只有一个activity,相对于现有技术多个activity的生命周期和状态的复杂控制,本发明的单例activity的生命周期和状态就简单得多,从而可以降低程序开发的复杂度,提高了开发效率,同时由于降低了程序开发的复杂度,也会减少程序错误(bug)的发生率。

附图说明

图1为本发明所述智能设备上应用程序的界面显示方法的一种流程示意图;

图2为本发明所述智能设备上应用程序的界面显示方法的一种模块关系示意图;

图3为一种应用程序的界面跳转示意图。

具体实施方式

下面结合附图及具体实施例对本发明再作进一步详细的说明。

图1为本发明所述智能设备上应用程序的界面显示方法的一种流程示意图。图2为本发明所述智能设备上应用程序的界面显示方法的一种模块关系示意图。参见图1和图2,本发明所述的方法包括:

步骤10、在应用程序中设置一管理模块101,在该管理模块101中注册该应用程序的界面信息。

步骤20、为启动的应用程序申请一单例活动activity102;向该单例activity102注册一界面容器(viewgroup)103,在智能设备的屏幕上显示该界面容器103。所述的单例activity102可以利用现有android操作系统提供的技术方案来注册,该单例activity102是一个全局唯一的activity,一个应用程序对应一个单例activity。所述界面容器103又进一步注册到该单例activity102中。也就是说,在应用程序启动后就启动该单例activity102,同时该单例activity102中又注册有界面容器103,在智能设备的屏幕上显示的是该界面容器103,该界面容器103用来加载需要显示的界面,应用程序的界面最终是在该界面容器103内部显示和切换,从视觉效果上看与现有技术中应用程序的界面显示和切换没有区别,但是本发明只打开了一个activity。

步骤30、应用程序中当前生命周期为显示状态的窗口,将需要显示的界面信息通知给所述管理模块101;该管理模块101创建需要显示的界面,再将该界面加载到所述界面容器103中显示;管理模块101再将显示状态变化的相应界面的生命周期通知给该相应界面对应的窗口。

在本发明中,所述界面容器103专注于界面的显示、切换以及显示效果上的实现,如增加一些过渡动画等等。所述管理模块101则是所述界面容器103和应用程序的窗口之间的代理,可以代理界面容器103去操控界面的添加和删除。

所述应用程序中可能包含多个可以显示界面,其中每一个界面都对应一个窗口(page)。每一个窗口中包括了该对应界面的展示信息等,如该界面的标题、图像、排版等信息;每一个窗口中还包括了该界面的生命周期的信息。所述界面的生命周期是指界面被创建、显示、消失、摧毁的时机。所述窗口中的界面生命周期信息可以指定出该界面的状态,例如如果窗口中的界面生命周期为显示状态,则说明该界面当前正在智能设备的前台显示,此时该窗口就可以接受输入的交互指令,并根据交互指令做出反馈。如果窗口中的界面生命周期为消失状态,则说明该界面当前被隐藏在智能设备的后台,此时应用程序还在运行,但是该窗口不能接受输入的交互指令,也无法做出相应的反馈。

在本发明中,需要将应用程序的所有界面信息注册到所述管理模块101中。在一种优选实施例中,具体的,所述在该管理模块中注册该应用程序的界面信息,可以是将该应用程序中的各个界面的界面标识及其对应的窗口信息注册到该管理模块中。所述注册,是指将相应的信息存储到管理模块中,由管理模块记录,以备后续处理使用。例如应用程序中包括a界面和b界面,那么需要在管理模块101中注册a界面和b界面的标识以及a界面对应的a窗口标识和b界面对应的b窗口标识,或者也可以只注册a界面标识和b界面标识,管理模块可以按照a界面标识根据应用程序中的预定关系找到对应的a窗口,同理也可以按照b界面标识根据应用程序中的预定关系找到对应的b窗口。

在一种实施例中,所述应用程序中当前生命周期为显示状态的窗口,将需要显示的界面信息通知给所述管理模块,可以具体包括:所述应用程序中当前生命周期为显示状态的窗口,监视本窗口对应界面中的操作事件,当发生界面跳转的操作事件时,将跳转的目的界面的界面标识通知给所述管理模块。

所述管理模块创建需要显示的界面,可以具体包括:所述管理模块确定该需要显示的界面对应的窗口,通过与该窗口的协作,创建出该需要显示的界面,得到该界面的展示信息。

所述将该界面加载到所述界面容器中显示,可以具体包括:管理模块将所创建的界面的展示信息发送给所述界面容器,所述界面容器根据该界面的展示信息,在本界面容器中显示该界面。

所述管理模块将显示状态变化的相应界面的生命周期通知给该相应界面对应的窗口,可以具体包括:管理模块根据界面容器的显示状态的变化,确定界面跳转前后的界面的生命周期,其中确定跳转前的界面的生命周期为消失状态,将该生命周期通知给该跳转前的界面对应的窗口;确定跳转后的界面的生命周期为显示状态,将该生命周期通知给该跳转后的界面对应的窗口。通过这种处理,不但在屏幕上显示的界面被切换过来,所述界面对应窗口的生命周期也被切换过来,从而可以使应用程序在新的界面顺利运行下去。

图3为一种应用程序的界面跳转示意图。下面结合图3进一步详细说明本发明的方法。如图3所示,假设应用程序启动后第一个需要显示的界面是a界面,a界面中有两个按钮,第一个按钮触发后会切换到b界面,第二个按钮触发后会切换到e界面。b界面中也有两个按钮,第一个按钮触发后会切换到c界面,第二个按钮触发后会切换到g界面。c界面中有一个按钮,该按钮触发后会切换到d界面。所述e界面中有一个按钮,该按钮触发后会切换到f界面。

当应用程序在初始启动后,应用程序会默认第一个显示的界面,如图3所示为a界面,则此时该a界面对应的a窗口的当前生命周期就是为显示状态,该a窗口当前需要显示的界面就是a界面。那么在应用程序初始启动时,a窗口将需要显示的a界面的标识通知给所述管理模块,该管理模块接收到a界面的标识后,与a窗口协作创建出该a界面,得到该a界面的展示信息,所述展示信息例如包括标题、内容、图片、排版信息等。然后管理模块将所述a界面加载到所述界面容器中,即将a界面的展示信息发送给界面容器,所述界面容器根据该a界面的展示信息,在本界面容器中显示该a界面,此时用户在智能设备的屏幕上看到的就是a界面。

此时,应用程序中当前生命周期为显示状态的窗口,就是a界面对应的a窗口。a窗口由于处于显示状态,即a界面此时处于前台显示,此时a窗口会监视a界面中的操作事件,并对操作事件做出相应的反馈。当a界面中发生界面跳转的操作事件时,例如此时a界面中的第一个按钮被触发,则应该跳转到b界面,该b界面就是跳转的目的界面,此时a窗口会把b界面的标识通知给所述管理模块,并通知管理模块需要显示该b界面。所述管理模块在收到需要显示的b界面的标识后,与b界面对应的b窗口协作,通过b窗口创建出该b界面,将该b界面的展示信息,例如标题、内容、图片、排版等信息,发送给界面容器,所述界面容器根据该b界面的展示信息,在本界面容器中显示该b界面,此时用户在智能设备的屏幕上看到的就是b界面。

所述界面容器还会把界面的加载结果反馈给管理模块,即通知管理模块所述b界面已经成功加载,a界面已经隐藏。所述管理模块判定b界面已显示,a界面已消失,通知b窗口其生命周期为显示状态,同时通知a窗口其生命周期为消失状态。此后,b窗口处于前台激活状态,可以接受操作指令等程序操作并进行反馈,而a窗口处于后台的非激活状态,不能接受操作指令等程序操作。

此时,应用程序中当前生命周期为显示状态的窗口为b窗口,该b窗口会继续监视本窗口对应b界面中的操作事件,当发生界面跳转的操作事件时,将跳转的目的界面的界面标识通知给所述管理模块,然后管理模块再利用本发明所述的方法向界面容器中加载新的目的界面。例如,当b界面上的第一个按钮被触发后,则目的界面为c界面,同理,按照上述方法,c界面会被加载到界面容器中,且c窗口的生命周期为显示状态,而b窗口的生命周期变为消失状态。

在一种进一步的实施例中,为了增加界面切换时的视觉效果,本发明还可以在所述将界面加载到所述界面容器中显示时,进一步包括:所述界面容器在收到所述管理模块发送的界面的展示信息后,先显示指定的过渡动画,在过渡动画结束后,再根据该界面的展示信息,在本界面容器中显示该界面。

进一步的,所述管理模块根据界面容器的显示状态的变化,确定界面跳转前后的界面的生命周期,包括:如果所述界面容器在进行界面跳转时显示了指定的过渡动画,则界面容器将该过渡动画的开始结束时机通知给所述管理模块,所述管理模块根据该过渡动画的开始时机确定跳转前的界面的生命周期为消失状态,根据该过渡动画的结束时机确定跳转后的界面的生命周期为显示状态。

本发明的方法实质上也是提供了一种在智能设备上应用程序的开发框架。即注册一个单例的activity,实现一个管理模块(controller),管理一个界面容器(viewgroup),每个界面都可以实现通用的交互接口与管理模块交互,被管理模块所控制。在界面容器做界面切换的时候,管理模块将相应界面的生命周期回调给对应的窗口,从而达到界面快速响应,提升开发效率的目的。通过本发明所述的方法,可以使得用户在操作应用程序的ui界面时,能得到快速响应。同时,由于一个应用程序的界面显示和切换仅仅用到了一个activity,减少了进程间的通信,在进行界面跳转时响应速度快,耗时少,同时由于只有一个activity,相对于现有技术多个activity的生命周期和状态的复杂控制,本发明的单例activity的生命周期和状态就简单得多,从而可以降低程序开发的复杂度,提高了开发效率,同时由于降低了程序开发的复杂度,也会减少程序错误(bug)的发生率。

另外,本发明的每一个实施例可以通过由数据处理设备如计算机执行的数据处理程序来实现。显然,数据处理程序构成了本发明。此外,通常存储在一个存储介质中的数据处理程序通过直接将程序读取出存储介质或者通过将程序安装或复制到数据处理设备的存储设备(如硬盘和或内存)中执行。因此,这样的存储介质也构成了本发明。存储介质可以使用任何类型的记录方式,例如纸张存储介质(如纸带等)、磁存储介质(如软盘、硬盘、闪存等)、光存储介质(如cd-rom等)、磁光存储介质(如mo等)等。

因此本发明还公开了一种存储介质,其中存储有数据处理程序,该数据处理程序用于执行本发明上述方法的任何一种实施例。

另外,本发明所述的方法步骤除了可以用数据处理程序来实现,还可以由硬件来实现,例如,可以由逻辑门、开关、专用集成电路(asic)、可编程逻辑控制器和嵌入微控制器等来实现。因此这种可以实现本发明所述方法的硬件也可以构成本发明。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

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