一种应用于Android平台的显示窗口的方法和装置制造方法
【专利摘要】本发明涉及通信技术,尤其涉及一种应用于Android平台的显示窗口的方法和装置,用以实现启动Activity,以使该Activity显示窗口的目的。本发明实施例提供的方法中,在启动活动Activity时,确定该Activity的启动方式是否为窗口方式;在确定该Activity的启动方式为窗口方式后,设置用于启动该Activity的消息传递对象中的第一窗口属性数据,以使该Activity根据该第一窗口属性数据显示窗口。采用本发明实施例提供的方法,可以实现启动Activity,使得该Activity显示窗口的目的。
【专利说明】—种应用于Android平台的显示窗口的方法和装置
【技术领域】
[0001]本发明涉及通信技术,尤其涉及一种应用于Android平台的显示窗口的方法和装置。
【背景技术】
[0002]Android平台在国际上应用广泛,但是,基于原始的Android平台开发的终端只能以全屏方式显示页面,同一时间终端的使用者只能看到一个显示页面。目前,还没有一种应用于Android平台的以窗口方式显示页面的方法。
[0003]Android平台中,一个应用由一个或多个活动(Activity)组成,每一个Activity负责一个页面的显示和处理。现有技术中,页面都是全屏显示,相当于只有一个窗口。队列historyRecord对Activity进行管理,队列historyRecord中各Activity的先后顺序就是Activity的调度顺序,最后启动的Activity排在队列的最如面,处于激活状态,其他Activity处于暂停状态或停止状态。如图1所示,队列最前面为Activity A,其他依次为Activity B、Activity C、Activity D。当前显示的是Activity A对应的页面,当把Activity A关闭时,Activity B对应的页面将显示,当把Activity C调度出来显示时,Activity C将排在Activity A的前面,Activity A将在队列中排在第二位。
[0004]当启动一个应用时,需要启动该应用的一个Activity。因此,若要实现以窗口方式显示应用对应的页面,即要实现在启动该应用的Activity时,使该Activity显示窗口。
[0005]综上,目前还没有一种启动Activity,以使该Activity显示窗口的方法。
【发明内容】
[0006]本发明实施例提供一种应用于Android平台的显示窗口的方法和装置,用以实现启动Activity,以使该Activity显示窗口。
[0007]本发明实施例提供的了一种应用于Android平台的显示窗口的方法,该方法包括:
[0008]在启动活动Activity时,确定该Activity的启动方式是否为窗口方式;
[0009]在确定该Activity的启动方式为窗口方式后,设置用于启动该Activity的消息传递对象中的第一窗口属性数据,以使该Activity根据该第一窗口属性数据显示窗口。
[0010]采用本方案,能够实现启动Activity,使得该Activity显示窗口的目的。
[0011]较佳地,在确定该Activity的启动方式为窗口方式之后,设置用于启动该Activity的消息传递对象中的第一窗口属性数据之前,该方法还包括:
[0012]若确定该Activity启动时使用已打开的窗口,则确定该已打开的窗口对应的窗口标识,根据确定的窗口标识确定该已打开的窗口对应的窗口对象,获取该确定的窗口对象中记录的第二窗口属性数据,其中,所述窗口、窗口标识与窗口对象 对应;
[0013]所述设置用于启动该Activity的消息传递对象中的第一窗口属性数据,包括:
[0014]根据获取的第二窗口属性数据设置用于启动该Activity的消息传递对象中的第一窗口属性数据。
[0015]该优选方案实现了当启动Activity时,使用已打开的窗口显示进行显示。
[0016]较佳地,在确定该Activity的启动方式为窗口方式之后,设置用于启动该Activity的消息传递对象中的第一窗口属性数据之前,该方法还包括:
[0017]若确定该Activity启动时要打开新窗口,则为要打开的新窗口分配窗口标识,生成该新窗口对应的窗口对象,在该生成的窗口对象中记录分配的窗口标识,并设置该生成的窗口对象中的第二窗口属性数据,其中所述窗口、窗口标识与窗口对象 对应;
[0018]所述设置用于启动该Activity的消息传递对象中的第一窗口属性数据,包括:
[0019]根据该生成的窗口对象中的第二窗口属性数据设置用于启动该Activity的消息传递对象中的第一窗口属性数据。
[0020]该优选方案实现了在启动Activity,打开新窗口进行显示。
[0021]较佳地,在确定该Activity启动时是否使用已打开的窗口之后,该方法还包括:将所述窗口标识置于用于启动该Activity的消息传递对象中,以使该Activity记录该窗口标识;
[0022]该方法还包括:在需要关闭Activity,且该要关闭的Activity是以窗口方式启动时,判断是否存在该要关闭的Activity的窗口关联Activity ;若不存在该要关闭的Activity的窗口关联Activity,贝U在关闭该要关闭的Activity之后,删除该要关闭的Activity的关联窗口对象;
[0023]其中,该要关闭的Activity的窗口关联Activity为:已打开的Activity中,记录的窗口标识与该要关闭的Activity记录的窗口标识相同的其他Activity ;该要关闭的Activity的关联窗口对象为:记录的窗口标识与该要关闭的Activity记录的窗口标识相同的窗口对象。
[0024]采用该优选方案,实现窗口管理,当不存在窗口中不存在Activity时,则需要删除窗口对象,保证数据准确。
[0025]较佳地,在判断是否存在该要关闭的Activity的窗口关联Activity之后,该方法还包括:
[0026]若存在该要关闭的Activity的窗口关联Activity,且该要关闭的Activity为正在显示的Activity,贝U在关闭该要关闭的Activity后,将该要关闭的Activity的窗口关联Activity中需要显示的Activity置为可视。
[0027]该优选方案实现了关闭窗口中的一个Activity时,显示该窗口的其他Activity。
[0028]较佳地,在确定该Activity启动时是否使用已打开的窗口之后,该方法还包括:将所述窗口标识置于用于启动该Activity的消息传递对象中,以使该Activity记录该窗口标识;
[0029]该方法还包括:接收窗口修改指令,获取该指令中的指令类型、窗口属性参数和窗口标识;从记录了该获取的窗口标识的Activity中,确定需要修改的窗口中需要显示的各Activity ;将获取的指令类型、窗口属性参数分别发给所述确定的需要显示的各Activity,以使每一个Activity根据该指令类型和窗口属性参数显示窗口。
[0030]该优选方案实现了对窗口的修改。
[0031]较佳地,在获取该指令中的指令类型、窗口属性参数和窗口标识之后,还包括:[0032]根据获取的指令类型和窗口属性参数,修改特定窗口对象中记录的第二窗口属性数据;
[0033]其中,所述特定窗口对象为:记录了所述获取的窗口标识的窗口对象。
[0034]该优选方案保证了窗口对象中的第二窗口属性数据与窗口显示方式的一致性。
[0035]本发明实施例还提供了一种应用于Android平台的显示窗口的装置,该装置包括:
[0036]判断模块,用于在启动活动Activity时,确定该Activity的启动方式是否为窗口方式;
[0037]数据处理模块,用于在所述判断模块确定该Activity的启动方式为窗口方式后,设置用于启动该Activity的消息传递对象中的第一窗口属性数据,以使该Activity根据该第一窗口属性数据显不窗口。
[0038]采用本方案,能够实现启动Activity,使得该Activity显示窗口的目的。
[0039]较佳地,所述判断模块还用于:在确定该Activity的启动方式为窗口方式之后,所述数据处理模块设置用于启动该Activity的消息传递对象中的第一窗口属性数据之前,确定该Activity启动时使用已打开的窗口 ;
[0040]所述数据处理模块还用于:若所述判断模块确定该Activity启动时使用已打开的窗口,则设置用于启动该Activity的消息传递对象中的第一窗口属性数据之前,确定该已打开的窗口对应的窗口标识,根据确定的窗口标识确定该已打开的窗口对应的窗口对象,获取该确定的窗口对象中记录的第二窗口属性数据,其中所述窗口、窗口标识与窗口对象 对应;
[0041]所述数据处理模块具体用于:根据获取的第二窗口属性数据设置用于启动该ActiVity的消息传递对象中的第一窗口属性数据。
[0042]该优选方案实现了当启动Activity时,使用已打开的窗口显示进行显示。
[0043]较佳地,所述判断模块还用于:在确定该Activity的启动方式为窗口方式之后,所述数据处理模块设置用于启动该Activity的消息传递对象中的第一窗口属性数据之前,确定该Activity启动时要打开新窗口 ;
[0044]所述数据处理模块还用于:若所述判断模块确定该Activity启动时要打开新窗口,则为该要打开的新窗口分配窗口标识,生成该新窗口对应的窗口对象,在该生成的窗口对象中记录分配的窗口标识,并设置该生成的窗口对象中的第二窗口属性数据,其中所述窗口、窗口标识与窗口对象 对应;
[0045]所述数据处理模块具体用于:根据该生成的窗口对象中的第二窗口属性数据设置用于启动该Activity的消息传递对象中的第一窗口属性数据。
[0046]该优选方案实现了在启动Activity,打开新窗口进行显示。
[0047]较佳地,所述数据处理模块还用于:在所述判断模块确定该Activity启动时是否使用已打开的窗口之后,将所述窗口标识置于用于启动该Activity的消息传递对象中,以使该Activity记录该窗口标识;
[0048]所述装置还包括:指令接收模块,用于接收窗口修改指令,并获取该指令中的指令类型、窗口属性参数和窗口标识;
[0049]所述数据处理模块还用于:从记录了所述指令接收模块获取的窗口标识的Activity中,确定需要修改的窗口中需要显示的各Activity ;并将获取的指令类型、窗口属性参数分别发给所述确定的需要显示的各Activity,以使每一个Activity根据该指令类型和窗口属性参数显示窗口。
[0050]该优选方案实现了对窗口的修改。
【专利附图】
【附图说明】
[0051]图1为现有技术的队列historyRecord的示意图;
[0052]图2为本发明实施例提供的应用于Android平台的显示窗口方法的过程示意图;
[0053]图3为本发明实施例中的窗口与Activity的对应关系示意图;
[0054]图4为本发明示例一的流程图;
[0055]图5为本发明示例二的流程图;
[0056]图6为本发明不例二的流程图;
[0057]图7为本发明示例四的流程图;
[0058]图8为本发明示例五的流程图;
[0059]图9为本发明示例六的流程图;
[0060]图10为本发明的窗口布局示意图;
[0061]图11为本发明实施例提供的应用于Android平台的显示窗口的装置结构示意图;
[0062]图12为本发明实施例提供的Android终端的结构示意图。
【具体实施方式】
[0063]本发明实施例提供一种应用于Android平台的显示窗口的方法和装置。该方法中,在启动活动Activity时,确定该Activity的启动方式是否为窗口方式;在确定该Activity的启动方式为窗口方式后,设置用于启动该Activity的消息传递对象中的第一窗口属性数据,以使该Activity根据该第一窗口属性数据显示窗口。采用本发明实施例提供的方法,能够实现启动Activity,使得该Activity显示窗口的目的。
[0064]在本发明实施例中,以Android平台的处理为例进行说明,但并不意味着本发明的方法仅适用于Android平台。实际上,对于任何用户终端平台,只要能设置用于启动该Activity的消息传递对象中的第一窗口属性数据,以使该Activity根据该第一窗口属性数据显示窗口,则本发明实施例提供的方法也适用于该类用户终端平台。
[0065]本发明实施例中,由Activity管理层对各Activity进行管理。Activity管理层包括:Activity管理层中的上层和Activity管理层中的下层。Activity管理层中的上层向各应用提供接口,Activity管理层中的下层具体实现对各Activity的管理。需要说明的是,这里虽然提及Activity管理层中的上层和Activity管理层中的下层,但不意味着Activity管理层仅包括Activity管理层中的上层和Activity管理层中的下层,其还可包括用于实现其他功能的层或模块,只是与本发明实施例提供的方法无关,所以这里无需提及。
[0066]图2为本发明实施例提供的应用于Android平台的显示窗口方法的过程示意图。如图2所示,该方法包括:[0067]S201:在启动活动Activity时,确定该Activity的启动方式是否为窗口方式;
[0068]S202:若步骤S201中,确定该Activity的启动方式为窗口方式,则设置用于启动该Activity的消息传递对象(intent)中的第一窗口属性数据(winDatal),以使该Activity 根据 winDatal 显不窗口。
[0069]可选地,步骤S201中,当Activity管理层中的下层收到Activity管理层中的上层发给Activity的,用于启动该Activity的intent,则认为需要启动该Activity。
[0070]可选地,Activity管理层中的下层根据收到的用于启动该Activity的intent中的窗口标识winld,确定该Activity的启动方式是否为窗口方式。比如,当WinId=O时,确定启动方式为全屏方式,否则确定启动方式为窗口方式;
[0071]或者,根据intent中是否存在winld来确定Activity的启动方式,若intent中存在winld,则确定对应的Activity的启动方式为窗口方式,否则确定对应的Activity的启动方式为全屏方式。
[0072]可选地,winDatal包括:窗口显示位置和大小相关的数据。
[0073]如表1中所示,winDatal可包括:窗口宽度(multiwinWidth)、窗口高度(multiwinHeight)、窗口位置左边位置(multiwinLeft)、窗口位置上边位置(multiwinTop)和是否最大化(multiwinMaximize),其中,是否最大化表示是否要最大化窗口。
[0074]表1、第一窗口属性数据winDatal
[0075]
【权利要求】
1.一种应用于Android平台的显示窗口的方法,其特征在于,该方法包括: 在启动活动Activity时,确定该Activity的启动方式是否为窗口方式; 在确定该Activity的启动方式为窗口方式后,设置用于启动该Activity的消息传递对象中的第一窗口属性数据,以使该Activity根据该第一窗口属性数据显示窗口。
2.如权利要求1所述的方法,其特征在于,在确定该Activity的启动方式为窗口方式之后,设置用于启动该Activity的消息传递对象中的第一窗口属性数据之前,该方法还包括: 若确定该Activity启动时使用已打开的窗口,则确定该已打开的窗口对应的窗口标识,根据确定的窗口标识确定该已打开的窗口对应的窗口对象,获取该确定的窗口对象中记录的第二窗口属性数据,其中,所述窗口、窗口标识与窗口对象对应; 所述设置用于启动该Activity的消息传递对象中的第一窗口属性数据,包括: 根据获取的第二窗口属性数据设置用于启动该Activity的消息传递对象中的第一窗口属性数据。
3.如权利要求1所述的方法,其特征在于,在确定该Activity的启动方式为窗口方式之后,设置用于启动该Activity的消息传递对象中的第一窗口属性数据之前,该方法还包括: 若确定该Activity启动时要打开新窗口,则为要打开的新窗口分配窗口标识,生成该新窗口对应的窗口对象,在该生成的窗口对象中记录分配的窗口标识,并设置该生成的窗口对象中的第二窗口属性数据,其中所述窗口、窗口标识与窗口对象对应; 所述设置用于启动该Activity的消息传递对象中的第一窗口属性数据,包括: 根据该生成的窗口对象中的第二窗口属性数据设置用于启动该Activity的消息传递对象中的第一窗口属性数据。
4.如权利要求2或3所述的方法,其特征在于, 在确定该Activity启动时是否使用已打开的窗口之后,该方法还包括:将所述窗口标识置于用于启动该Activity的消息传递对象中,以使该Activity记录该窗口标识; 该方法还包括:在需要关闭Activity,且该要关闭的Activity是以窗口方式启动时,判断是否存在该要关闭的Activity的窗口关联Activity ;若不存在该要关闭的Activity的窗口关联Activity,贝U在关闭该要关闭的Activity之后,删除该要关闭的Activity的关联窗口对象; 其中,该要关闭的Activity的窗口关联Activity为:已打开的Activity中,记录的窗口标识与该要关闭的A c t i V i t y记录的窗口标识相同的其他A c t i V i t y ;该要关闭的Activity的关联窗口对象为:记录的窗口标识与该要关闭的Activity记录的窗口标识相同的窗口对象。
5.如权利要求4所述的方法,其特征在于,在判断是否存在该要关闭的Activity的窗口关联Activity之后,该方法还包括: 若存在该要关闭的Activity的窗口关联Activity,且该要关闭的Activity为正在显示的Activity,则在关闭该要关闭的Activity后,将该要关闭的Activity的窗口关联Activity中需要显示的Activity置为可视。
6.如权利要求2或3所述的方法,其特征在于,在确定该Activity启动时是否使用已打开的窗口之后,该方法还包括:将所述窗口标识置于用于启动该Activity的消息传递对象中,以使该Activity记录该窗口标识; 该方法还包括:接收窗口修改指令,获取该指令中的指令类型、窗口属性参数和窗口标识;从记录了该获取的窗口标识的Activity中,确定需要修改的窗口中需要显示的各Activity ;将获取的指令类型、窗口属性参数分别发给所述确定的需要显示的各Activity,以使每一个Activity根据该指令类型和窗口属性参数显示窗口。
7.如权利要求6所述的方法,其特征在于,在获取该指令中的指令类型、窗口属性参数和窗口标识之后,还包括: 根据获取的指令类型和窗口属性参数,修改特定窗口对象中记录的第二窗口属性数据; 其中,所述特定窗口对象为:记录了所述获取的窗口标识的窗口对象。
8.一种应用于Android平台的显示窗口的装置,其特征在于,该装置包括: 判断模块,用于在启动活动Activity时,确定该Activity的启动方式是否为窗口方式; 数据处理模块,用于在所述判断模块确定该Activity的启动方式为窗口方式后,设置用于启动该Activity的消息传递对象中的第一窗口属性数据,以使该Activity根据该第一窗口属性数据显不窗口。
9.如权利要求8所述的装置,其特征在于,` 所述判断模块还用于:在确定该Activity的启动方式为窗口方式之后,所述数据处理模块设置用于启动该Activity的消息传递对象中的第一窗口属性数据之前,确定该Activity启动时使用已打开的窗口 ; 所述数据处理模块还用于:若所述判断模块确定该Activity启动时使用已打开的窗口,则在设置用于启动该Activity的消息传递对象中的第一窗口属性数据之前,确定该已打开的窗口对应的窗口标识,根据确定的窗口标识确定该已打开的窗口对应的窗口对象,获取该确定的窗口对象中记录的第二窗口属性数据,其中所述窗口、窗口标识与窗口对象--对应; 所述数据处理模块具体用于:根据获取的第二窗口属性数据设置用于启动该ActiVity的消息传递对象中的第一窗口属性数据。
10.如权利要求8所述的装置,其特征在于, 所述判断模块还用于:在确定该Activity的启动方式为窗口方式之后,所述数据处理模块设置用于启动该Activity的消息传递对象中的第一窗口属性数据之前,确定该Activity启动时要打开新窗口 ; 所述数据处理模块还用于:若所述判断模块确定该Activity启动时要打开新窗口,则为要打开的新窗口分配窗口标识,生成该新窗口对应的窗口对象,在该生成的窗口对象中记录分配的窗口标识,并设置该生成的窗口对象中的第二窗口属性数据,其中所述窗口、窗口标识与窗口对象对应; 所述数据处理模块具体用于:根据该生成的窗口对象中的第二窗口属性数据设置用于启动该Activity的消息传递对象中的第一窗口属性数据。
11.如权利要求9或10所述的装置,其特征在于,所述数据处理模块还用于:在所述判断模块确定该Activity启动时是否使用已打开的窗口之后,将所述窗口标识置于用于启动该Activity的消息传递对象中,以使该Activity记录该窗口标识; 所述装置还包括:指令接收模块,用于接收窗口修改指令,并获取该指令中的指令类型、窗口属性参数和窗口标识; 所述数据处理模块还用于:从记录了所述指令接收模块获取的窗口标识的Activity中,确定需要修改的窗口中需要显示的各Activity ;并将获取的指令类型、窗口属性参数分别发给所述确定的需要显示的各Activity,以使每一个Activity根据该指令类型和窗口属性参数显示窗口。
【文档编号】G06F3/0484GK103558959SQ201310534221
【公开日】2014年2月5日 申请日期:2013年10月31日 优先权日:2013年10月31日
【发明者】朱平洋, 陈验方, 张云 申请人:青岛海信移动通信技术股份有限公司