一种视图对象控制方法及电子设备的制作方法

文档序号:6518541阅读:193来源:国知局
一种视图对象控制方法及电子设备的制作方法
【专利摘要】本发明公开了一种视图对象控制方法及电子设备,用于解决现有技术中应用进程的悬浮窗口会影响用户操作的技术问题,该方法包括:在确定第一应用进程中包括至少一个悬浮窗口时,将第一实例及与所述第一实例不同的第二实例注入第一应用进程,以在第一应用进程中以一预设形式运行第一实例;在将第一实例及第二实例注入第一应用进程之后的T1时刻,基于第一实例获得M个视图对象实例及与M个视图对象实例对应的M组参数实例,并根据M组参数实例从M个视图对象实例中确定出N个视图对象实例,其中,确定出的N个视图对象实例对应的N个视图对象为处于待显示状态的悬浮窗口类型;通过执行第二实例,控制N个视图对象在第一窗口的上层处于非悬浮显示状态。
【专利说明】一种视图对象控制方法及电子设备
【技术领域】
[0001 ] 本发明涉及电子【技术领域】,尤其涉及一种视图对象控制方法及电子设备。
【背景技术】
[0002]随着科学技术的发展,电子设备的应用界面越来越复杂,给用户带来了丰富的用户体验。
[0003]比如,在电子设备应用过程中,很多应用会产生悬浮在桌面或者应用窗口上的悬浮窗口,一些音乐播放器在应用过程中,会产生桌面歌词悬浮窗口,一些手机安全卫士会在手机桌面弹出一些和主界面交互的悬浮窗口,一些应用还会在应用窗口上植入一些广告,或恶意软件的悬浮窗口等等,现有技术中的Android操作系统的手机,无论是生成的桌面悬浮窗口还是应用窗口上的悬浮窗口都不隶属于Activity界面,而是隶属于启动它的应用程序所在的进程,悬浮窗口不受Activity界面的影响,因此悬浮窗口会出现在其他窗口上面。
[0004]由于现有技术中悬浮窗口会出现在其他窗口上面,特别是一些广告或恶意软件的悬浮窗口会反复出现在对应的应用窗口上,从而容易引起误操作。因此,现有技术存在应用进程的悬浮窗口会影响用户操作的技术问题。

【发明内容】

[0005]有鉴于此,本发明提供了一种视图对象控制方法及电子设备,用于解决现有技术中应用进程的悬浮窗口会影响用户操作的技术问题。
[0006]第一方面,本发明实施例提供了一种视图对象控制方法,应用于一至少能够运行第一应用进程的电子设备中,所述方法包括:
[0007]在确定所述第一应用进程中包括至少一个悬浮窗口时,将第一实例及与所述第一实例不同的第二实例注入所述第一应用进程,以在所述第一应用进程中以一预设形式运行所述第一实例;
[0008]在将所述第一实例及所述第二实例注入所述第一应用进程之后的Tl时刻,基于所述第一实例获得所述M个视图对象实例及与所述M个视图对象实例对应的M组参数实例,并根据所述M组参数实例从所述M个视图对象实例中确定出N个视图对象实例,其中,确定出的所述N个视图对象实例对应的N个视图对象为处于待显示状态的悬浮窗口类型,M为大于等于I的任意整数,N为小于等于M的任意正整数;
[0009]通过执行所述第二实例,控制所述N个视图对象在第一窗口的上层处于非悬浮显示状态。
[0010]可选的,所述基于所述第一实例获得所述M个视图对象实例及与所述M个视图对象实例对应的M组参数实例,包括:
[0011]执行所述第一实施例,基于JAVA反射机制获得所述第一应用进程中的窗口管理接口实例;[0012]基于所述JAVA反射机制在所述窗口管理接口实例中获得所述M个视图对象实例以及所述M组参数实例。
[0013]可选的,所述根据所述M组参数实例从所述M个视图对象实例中确定出N个视图对象实例,包括:
[0014]根据第i组参数实例判断与第i个视图对象实例对应的第i个视图对象是否为所述悬浮窗口类型,I依次取I到M中的整数。
[0015]可选的,所述通过执行所述第二实例,控制所述N个视图对象在第一窗口的上层处于非悬浮显示状态,具体为:
[0016]在判断出所述第i个视图对象为所述悬浮窗口类型时,调用所述第二实例;
[0017]通过所述第二实例控制所述第i个视图对象在所述第一窗口的上层处于所述非悬浮显示状态。
[0018]可选的,在所述在判断出所述第i个视图对象为所述悬浮窗口类型之后,所述方法还包括:
[0019]判断所述第i个视图对象是否为预设视图对象,其中所述预设视图对象为定义处于始终显示状态的视图对象;
[0020]在所述第i个视图对象不为预设视图对象时,调用所述第二实例,否则禁止调用所述第二实例。
[0021]可选的,所述控制所述N个视图对象在第一窗口的上层处于非悬浮显示状态,具体为:
[0022]在所述第i个视图对象不为预设视图对象时,通过所述第二实例关闭所述第i个视图对象,或通过所述第二实例设置所述第i个视图对象处于所述显示状态时为普通窗口类型,或通过所述第二实例控制所述第i个视图对象处于所述显示状态时禁止获得焦点,或通过所述第二实例定义所述第i个视图对象的宽度值和高度值均为零。
[0023]第二方面,本发明实施例提供了一种电子设备,所述电子设备至少能够运行第一应用进程,包括:
[0024]注入单元,用于在确定所述第一应用进程中包括至少一个悬浮窗口时,将第一实例及与所述第一实例不同的第二实例注入所述第一应用进程,以在所述第一应用进程中以一预设形式运行所述第一实例;
[0025]确定单元,用于在将所述第一实例及所述第二实例注入所述第一应用进程之后的Tl时刻,基于所述第一实例获得所述M个视图对象实例及与所述M个视图对象实例对应的M组参数实例,并根据所述M组参数实例从所述M个视图对象实例中确定出N个视图对象实例,其中,确定出的所述N个视图对象实例对应的N个视图对象为处于待显示状态的悬浮窗口类型,M为大于等于I的任意整数,N为小于等于M的任意正整数;
[0026]控制单元,用于通过执行所述第二实例,控制所述N个视图对象在第一窗口的上层处于非悬浮显示状态。
[0027]可选的,所述确定单元包括:
[0028]执行子单元,用于执行所述第一实施例,基于JAVA反射机制获得所述第一应用进程中的窗口管理接口实例;
[0029]获得子单元,用于基于所述JAVA反射机制在所述窗口管理接口实例中获得所述M个视图对象实例以及所述M组参数实例。
[0030]可选的,所述确定单元包括:
[0031]第一判断子单元,用于根据第i组参数实例判断与第i个视图对象实例对应的第i个视图对象是否为所述悬浮窗口类型,i依次取I到M中的整数。
[0032]可选的,所述控制单元,包括:
[0033]第一调用子单元,用于在判断出所述第i个视图对象为所述悬浮窗口类型时,调用所述第二实例;
[0034]控制子单元,用于通过所述第二实例控制所述第i个视图对象在所述第一窗口的上层处于所述非悬浮显示状态。
[0035]可选的,所述控制单元还包括:
[0036]第二判断子单元,用于判断所述第i个视图对象是否为预设视图对象,其中所述预设视图对象为定义处于始终显示状态的视图对象;
[0037]第二调用子单元,用于在所述第i个视图对象不为预设视图对象时,调用所述第二实例,否则禁止调用所述第二实例。
[0038]可选的,所述第二调用子单元,具体用于:
[0039]在所述第i个视图对象不为预设视图对象时,通过所述第二实例关闭所述第i个视图对象,或通过所述第二实例设置所述第i个视图对象处于所述显示状态时为普通窗口类型,或通过所述第二实例控制所述第i个视图对象处于所述显示状态时禁止获得焦点,或通过所述第二实例定义所述第i个视图对象的宽度值和高度值均为零。
[0040]本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
[0041]由于采用了在确定第一应用进程中包括至少一个悬浮窗口时,将第一实例及与第一实例不同的第二实例注入第一应用进程,以在第一应用进程中以一预设形式运行第一实例,因此,通过第一实例就能获得第一应用进程的视图对象实例及与视图对象实例对应的参数实例,从而根据参数实例判断视图对象是否为处于待显示状态的悬浮窗口类型,在为悬浮窗口类型时,调用第二实例控制在显示时非悬浮显示状态显示已经生成的悬浮窗口,比如普通窗口形式,控制不获得焦点等等,因此显示的窗口不会影响用户操作其他窗口,不会引起误操,因此有效解决了解决现有技术中应用进程的悬浮窗口会影响用户操作的技术问题,实现了从底层拦截悬浮窗口,控制悬浮窗口类型的视图对象不会以悬浮显示状态出现在主界面上或应用窗口界面上,因此更有效。
[0042]进一步,由于根据第i组参数实例判断与第i个视图对象实例对应的第i个视图对象是否为悬浮窗口类型,在判断出第i个视图对象为悬浮窗口类型时,调用第二实例,因此能保证实时拦截生成悬浮窗口类型的处于待显示状态待的视图对象。
[0043]进一步,由于在据第i组参数实例判断与第i个视图对象实例对应的第i个视图对象是否为悬浮窗口类型之后,还判断第i个视图对象是否与预设视图对象,不是则调用第二实例,是则禁止调用第二实例,因此能够拦截非法悬浮窗口,而对用户有用的悬浮窗口则不拦截,提高了用户体验度。
【专利附图】

【附图说明】[0044]图1为本申请实施例一中视图对象控制方法的流程图;
[0045]图2为本申请实施例五中电子设备的模块图。
【具体实施方式】
[0046]在本发明实施例中,通过在确定第一应用进程中包括至少一个悬浮窗口时,将第一实例及与第一实例不同的第二实例注入第一应用进程,以在第一应用进程中以一预设形式运行第一实例;在将第一实例及第二实例注入第一应用进程之后的Tl时刻,第一实例能根据M组参数实例从M个视图对象实例中确定出处于待显示状态的悬浮窗口类型的N个视图对象,从而通过第二实例控制N个视图对象在第一窗口的上层处于非悬浮显示状态,因此能够在悬浮窗出现在主界面或应用进程的界面之前拦截,有效解决了现有技术中浮窗口会影响用户操作的技术问题,实现了从底层拦截悬浮窗口,控制悬浮窗口类型的视图对象不会以悬浮显示状态出现在主界面上或应用窗口界面上。因此更有效。
[0047]为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
[0048]实施例一:
[0049]在实施例一中提供了一种视图对象控制方法,应用于至少能够运行第一应用进程的电子设备中,比如PAD(平板电脑),智能手机,个人计算机等等。
[0050]参考图1,该方法包括:
[0051]SlOl:在确定第一应用进程中包括至少一个悬浮窗口时,将第一实例及与所述第一实例不同的第二实例注入第一应用进程,以在第一应用进程中以一预设形式运行第一实例,其中第一实例和第二实例为执行其相应功能的计算机执行逻辑;
[0052]S102:在将第一实例及第二实例注入第一应用进程之后的Tl时刻,TI时刻为悬浮窗口出现在第一窗口上之前,基于第一实例获得M个视图对象实例及与M个视图对象实例对应的M组参数实例,并根据M组参数实例从M个视图对象实例中确定出N个视图对象实例,其中,确定出的所述N个视图对象实例对应的N个视图对象为处于待显示状态的悬浮窗口类型,M为大于等于I的任意整数,N为小于等于M的任意正整数;
[0053]S103:通过执行所述第二实例,控制N个视图对象在第一窗口的上层处于非悬浮显示状态。
[0054]下面以该电子设备为Android操作系统的智能电子设备,比如智能手机为例,对本发明的技术方案进行举例说明,但是不用于限制本发明。
[0055]在实施例一中,步骤SlOl具体为:检测所述电子设备中安装的多个应用进程中是否存在包括至少一个悬浮窗口的应用进程,当检测到包括至少一个悬浮窗口的应用进程时,将第一实例及与第一实例不同的第二实例注入该应用进程中运行,比如第一应用进程中。在具体实施过程中,因为悬浮窗口会反复出现,或者出现新的悬浮窗口,因此在第一实例注入第一应用进程中之后,在第一应用进程处于运行过程中,第一实例实时循环运行,或者以一预设间隔循环运行,或者由特定事件触发运行。比如,一游戏应用A在安装之后,系统检测到游戏应用A中包括I个广告悬浮窗口,将第一实例注入游戏应用A中,每隔10微秒运行一次第一实例,或者每当游戏应用A生成悬浮窗事件时,则触发第一实例。
[0056]实施例二[0057]在实施例二中,结合实施例一中的实施方式,在执行步骤SlOl之后,接着执行如下步骤:步骤一:基于JAVA反射机制获得第一应用进程中的窗口管理接口实例;步骤二:基于JAVA反射机制在窗口管理接口实例中获得M个视图对象实例以及M组参数实例。
[0058]以Android架构为例,基于上述实施例一中的实施方式将第一实例和第二实例注入第一应用进程之后,基于第一实例获得第一应用进程的Dalvik实例(虚拟机实例),从而通过Dalvik加载第一实例中的JAR文件以执行JAR文件中的java代码,在执行JAR文件时,基于java Reflection (JAVA反射机制)在窗口管理接口实例(WindowManagerImpl的实例)中获得第一应用进程中的M个视图对象实例(即View实例)以及所述M组View参数实例。
[0059]实施例三
[0060]在本实施例的一种实施方式中,为了实现更实时的拦截悬浮窗口,继续沿用上述实施例一或实施例二中的实施方式,步骤S102中的根据M组参数实例从M个视图对象实例中确定出N个视图对象实例具体为:根据第i组参数实例判断与第i个视图对象实例对应的第i个视图对象是否为所述悬浮窗口类型,i依次取I到M中的整数,具体来讲,根据获得的第i组参数中的窗口类型参数判断生成的第i个视图对象为是否为悬浮窗口类型,在判断出所述第i个视图对象为所述悬浮窗口类型时,调用所述第二实例;通过所述第二实例控制所述第i个视图对象在所述第一窗口的上层处于所述非悬浮显示状态。
[0061]在本实施例的另一种实施方式中,为了更有效的拦截非法悬浮窗口,而对用户有用的悬浮窗口则能够正常显示,提高了用户体验度。在判断出所述第i个视图对象为悬浮窗口类型时,判断第i个视图对象是否为预设视图对象,其中预设视图对象为定义处于始终显示状态的视图对象,比如天气悬浮窗口,时钟悬浮窗口,歌词悬浮窗口等,可以为用户自定义,也可以为开发人员定义,在此不做限制。在判断出第i个视图对象不为预设视图对象时,调用第二实例,控制第i个视图对象在第一窗口的上层处于非悬浮显示状态,当判断出第i个视图对象为预设视图对象时,禁止调用第二实例。
[0062]比如,悬浮歌词窗口为预设始终显示的第一应用进程为一音乐播放应用,在音乐播放应用可能会出现一些广告悬浮窗口,也会出现悬浮歌词窗口,当根据第I组参数实例判断出第I个视图对象实例的窗口类型为悬浮窗口类型之后,检测第I个视图对象实例的视图对象是否为悬浮歌词窗口,当为悬浮歌词窗口时,禁止调用第二实例,继续获得第2组参数实例,根据第2组参数实例判断第2个视图对象实例的窗口类型为悬浮窗口之后,检测第2个视图对象实例对应的视图对象是否为悬浮歌词窗口,当不为悬浮歌词窗口时,调用第二实施例。
[0063]实施例四
[0064]沿用上述实施例一,实施例二或实施例三中的实施方式,进一步为了使确定出为悬浮窗口类型的第i个视图对象不在第一应用进程的界面上或在主界面上以悬浮窗口形式出现,根据调用的第二实例的类型,具体包括四种实施方式:
[0065]第一种:通过第二实例关闭第i个视图对象,在第i个视图对象生成时,第二实例具体为调用“Remove View”函数移除悬浮窗口类型的第i视图对象实例,,以使在悬浮窗口在显示在第一窗口之前关闭。
[0066]第二种:通过第二实例设置第i个视图对象处于显示状态时为普通窗口类型,第二实例具体为调用函数“UpdateViewLayout O ”在第i个视图对象对应的参数实例中设置第i个视图对象的窗口类型参数为普通窗口类型,在第i个视图对象生成之后,窗口类型参数被修改,因此,第i个视图对象以普通窗口显示在第一窗口上,不会阻挡用户操作。
[0067]第三种:通过第二实例控制第i个视图对象处于显示状态时禁止获得焦点,因此,即使第i个视图对象显示在第一窗口上,因为不能获得焦点就不能接收用户的操作,进而不会产生误操作,当然,也可以控制禁止接收触屏事件。
[0068]第四种:通过第二实例定义第i个视图对象的宽度值和高度值均为零,第二实例具体为调用设置函数修改第i个视图对象对应的参数实例中的宽度值和高度值为零,因此能使悬浮窗口不在第一窗口上显不。
[0069]实施例五
[0070]基于同一发明构思,本发明实施例提供了一种电子设备,电子设备至少能够运行第一应用进程,如图2所示,包括如下结构:
[0071 ] 注入单元201,用于在确定第一应用进程中包括至少一个悬浮窗口时,将第一实例及与所述第一实例不同的第二实例注入第一应用进程,以在第一应用进程中以一预设形式运行第一实例,其中第一实例和第二实例为执行其相应功能的计算机执行逻辑;
[0072]确定单元202,用于在将第一实例及第二实例注入第一应用进程之后的Tl时刻,基于第一实例获得M个视图对象实例及与M个视图对象实例对应的M组参数实例,并根据M组参数实例从M个视图对象实例中确定出N个视图对象实例,其中,确定出的N个视图对象实例对应的N个视图对象为处于待显示状态的悬浮窗口类型,M为大于等于I的任意整数,N为小于等于M的任意正整数;
[0073]控制单元203,用于通过执行第二实例,控制N个视图对象在第一窗口的上层处于非悬浮显示状态。
[0074]进一步,在一种实施方式中,确定单元202包括:
[0075]执行子单元,用于执行第一实施例,基于JAVA反射机制获得第一应用进程中的窗口管理接口实例;
[0076]获得子单元,用于基于JAVA反射机制在窗口管理接口实例中获得M个视图对象实例以及M组参数实例。
[0077]进一步,结合上述实施方式,确定单元202包括:
[0078]第一判断子单元,用于根据第i组参数实例判断与第i个视图对象实例对应的第i个视图对象是否为悬浮窗口类型,i依次取I到M中的整数。
[0079]进一步,在第一种可能的实施方式中,控制单元203,包括:
[0080]第一调用子单元,用于在判断出第i个视图对象为悬浮窗口类型时,调用第二实例;
[0081]控制子单元,用于通过第二实例控制第i个视图对象在第一窗口的上层处于非悬浮显示状态。
[0082]在第二种可能的实施方式中,控制单元203还包括:
[0083]第二判断子单元,用于判断第i个视图对象是否为预设视图对象,其中预设视图对象为定义处于始终显示状态的视图对象;
[0084]第二调用子单元,用于在第i个视图对象不为预设视图对象时,调用第二实例,否则禁止调用第二实例。
[0085]进一步,结合上述第二调用子单元,具体用于:
[0086]在第i个视图对象不为预设视图对象时,通过第二实例关闭第i个视图对象,或通过第二实例设置第i个视图对象处于显示状态时为普通窗口类型,或通过第二实例控制第i个视图对象处于显示状态时禁止获得焦点,或通过第二实例定义第i个视图对象的宽度值和高度值均为零。
[0087]本实施例中的电子设备与前述视图对象控制方法是基于同一发明构思下的两个方面,在前面已经对方法的实施过程作了详细的描述,所以本领域技术人员可根据前述描述清楚的了解本实施例中的电子设备的结构及实施过程,为了说明书的简洁,在此就不再赘述了。
[0088]上述本申请实施例中的技术方案,至少具有如下的技术效果或优点:
[0089]由于采用了在确定第一应用进程中包括至少一个悬浮窗口时,将第一实例及与第一实例不同的第二实例注入第一应用进程,以在第一应用进程中以一预设形式运行第一实例,因此,通过第一实例就能获得第一应用进程的视图对象实例及与视图对象实例对应的参数实例,从而根据参数实例判断视图对象是否为处于待显示状态的悬浮窗口类型,在为悬浮窗口类型时,调用第二实例控制在显示时非悬浮显示状态显示已经生成的悬浮窗口,比如普通窗口形式,控制不获得焦点等等,因此显示的窗口不会影响用户操作其他窗口,不会引起误操,因此有效解决了解决现有技术中应用进程的悬浮窗口会影响用户操作的技术问题,实现了从底层拦截悬浮窗口,控制悬浮窗口类型的视图对象不会以悬浮显示状态出现在主界面上或应用窗口界面上,因此更有效。
[0090]进一步,由于根据第i组参数实例判断与第i个视图对象实例对应的第i个视图对象是否为悬浮窗口类型,在判断出第i个视图对象为悬浮窗口类型时,调用第二实例,因此能保证实时拦截生成悬浮窗口类型的处于待显示状态待的视图对象。
[0091]进一步,由于在据第i组参数实例判断与第i个视图对象实例对应的第i个视图对象是否为悬浮窗口类型之后,还判断第i个视图对象是否与预设视图对象,不是则调用第二实例,是则禁止调用第二实例,因此能够拦截非法悬浮窗口,而对用户有用的悬浮窗口则不拦截,提高了用户体验度。
[0092]本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0093]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0094]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0095]尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0096]显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
【权利要求】
1.一种视图对象控制方法,应用于一电子设备,所述电子设备至少能够运行第一应用进程,所述方法包括: 在确定所述第一应用进程中包括至少一个悬浮窗口时,将第一实例及与所述第一实例不同的第二实例注入所述第一应用进程,以在所述第一应用进程中以一预设形式运行所述第一实例; 在将所述第一实例及所述第二实例注入所述第一应用进程之后的Tl时刻,基于所述第一实例获得所述M个视图对象实例及与所述M个视图对象实例对应的M组参数实例,并根据所述M组参数实例从所述M个视图对象实例中确定出N个视图对象实例,其中,确定出的所述N个视图对象实例对应的N个视图对象为处于待显示状态的悬浮窗口类型,M为大于等于I的任意整数,N为小于等于M的任意正整数; 通过执行所述第二实例,控制所述N个视图对象在第一窗口的上层处于非悬浮显示状态。
2.如权利要求1所述的方法,其特征在于,所述基于所述第一实例获得所述M个视图对象实例及与所述M个视图对象实例对应的M组参数实例,包括: 执行所述第一实施例,基于JAVA反射机制获得所述第一应用进程中的窗口管理接口实例; 基于所述JAVA反射机制在所述窗口管理接口实例中获得所述M个视图对象实例以及所述M组参数实例。
3.如权利要求2所述的方法,其特征在于,所述根据所述M组参数实例从所述M个视图对象实例中确定出N个视图对象实例,包括: 根据第i组参数实例判断与第i个视图对象实例对应的第i个视图对象是否为所述悬浮窗口类型,i依次取I到M中的整数。
4.如权利要求3所述的方法,其特征在于,所述通过执行所述第二实例,控制所述N个视图对象在第一窗口的上层处于非悬浮显示状态,具体为: 在判断出所述第i个视图对象为所述悬浮窗口类型时,调用所述第二实例; 通过所述第二实例控制所述第i个视图对象在所述第一窗口的上层处于所述非悬浮显示状态。
5.如权利要求4所述的方法,其特征在于,在所述在判断出所述第i个视图对象为所述悬浮窗口类型之后,所述方法还包括: 判断所述第i个视图对象是否为预设视图对象,其中所述预设视图对象为定义处于始终显不状态的视图对象; 在所述第i个视图对象不为预设视图对象时,调用所述第二实例,否则禁止调用所述第二实例。
6.如权利要求5所述的方法,其特征在于,所述控制所述N个视图对象在第一窗口的上层处于非悬浮显示状态,具体为: 在所述第i个视图对象不为预设视图对象时,通过所述第二实例关闭所述第i个视图对象,或通过所述第二实例设置所述第i个视图对象处于所述显示状态时为普通窗口类型,或通过所述第二实例控制所述第i个视图对象处于所述显示状态时禁止获得焦点,或通过所述第二实例定义所述第i个视图对象的宽度值和高度值均为零。
7.一种电子设备,所述电子设备至少能够运行第一应用进程,包括: 注入单元,用于在确定所述第一应用进程中包括至少一个悬浮窗口时,将第一实例及与所述第一实例不同的第二实例注入所述第一应用进程,以在所述第一应用进程中以一预设形式运行所述第一实例; 确定单元,用于在将所述第一实例及所述第二实例注入所述第一应用进程之后的Tl时刻,基于所述第一实例获得所述M个视图对象实例及与所述M个视图对象实例对应的M组参数实例,并根据所述M组参数实例从所述M个视图对象实例中确定出N个视图对象实例,其中,确定出的所述N个视图对象实例对应的N个视图对象为处于待显示状态的悬浮窗口类型,M为大于等于I的任意整数,N为小于等于M的任意正整数; 控制单元,用于通过执行所述第二实例,控制所述N个视图对象在第一窗口的上层处于非悬浮显示状态。
8.如权利要求7所述的电子设备,其特征在于,所述确定单元包括: 执行子单元,用于执行所述第一实施例,基于JAVA反射机制获得所述第一应用进程中的窗口管理接口实例; 获得子单元,用于基于所述JAVA反射机制在所述窗口管理接口实例中获得所述M个视图对象实例以及所述M组参数实例。
9.如权利要求8所述的电子设备,其特征在于,所述确定单元包括: 第一判断子单元,用于根据第i组参数实例判断与第i个视图对象实例对应的第i个视图对象是否为所述悬浮窗口类型,i依次取I到M中的整数。
10.如权利要求9所述的电子设备,其特征在于,所述控制单元,包括: 第一调用子单元,用于在判断出所述第i个视图对象为所述悬浮窗口类型时,调用所述第二实例; 控制子单元,用于通过所述第二实例控制所述第i个视图对象在所述第一窗口的上层处于所述非悬浮显示状态。
11.如权利要求10所述的电子设备,其特征在于,所述控制单元还包括: 第二判断子单元,用于判断所述第i个视图对象是否为预设视图对象,其中所述预设视图对象为定义处于始终显示状态的视图对象; 第二调用子单元,用于在所述第i个视图对象不为预设视图对象时,调用所述第二实例,否则禁止调用所述第二实例。
12.如权利要求11所述的电子设备,其特征在于,所述第二调用子单元,具体用于: 在第i个视图对象不为预设视图对象时,通过第二实例关闭第i个视图对象,或通过第二实例设置第i个视图对象处于显示状态时为普通窗口类型,或通过第二实例控制第i个视图对象处于显示状态时禁止获得焦点,或通过第二实例定义第i个视图对象的宽度值和高度值均为零。
【文档编号】G06F3/0481GK103631480SQ201310556704
【公开日】2014年3月12日 申请日期:2013年11月11日 优先权日:2013年11月11日
【发明者】李甘 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1