一种任务栈管理方法及装置的制造方法

xiaoxiao2021-3-1  195

一种任务栈管理方法及装置的制造方法
【技术领域】
[0001 ]本发明涉及通信领域,具体涉及一种任务栈管理方法及装置。
【背景技术】
[0002]多系统设备是指在同一个设备中同时存在多个系统,各个系统之间通过不同的硬件模块来实现,不同的硬件模块之间可以进行通信,例如,可以在同一个平板设备中同时配置不同的硬件模块分别用于安装安卓(Android)系统和Windows系统,这两个系统之间通过硬件模块之间的信号连接进行通信。
[0003]目前,安装有多系统的设备对各系统的任务的管理是通过各系统分别进行的,SP各个系统分别监控各自的任务运行情况并分别进行管理,但是由于在多系统的设备上用户每次都只能在设备界面上操作一个系统,从而当用户需要对设备上其它系统的任务进行管理时,需要切换至相应的系统进行操作,使得操作繁琐,效率低。

【发明内容】

[0004]本发明实施例提供了一种任务栈管理方法及装置,以期可以对多系统设备的任务进行统一管理。
[0005]本发明实施例第一方面提供一种任务栈管理方法,包括:
[0006]在主系统中建立任务栈,并建立所述主系统和各子系统之间的通讯服务与监控服务,以使所述主系统与所述各子系统进行通讯并对所述各子系统进行监控;
[0007]判断所述主系统或所述各子系统是否启动任务;
[0008]若所述主系统或所述各子系统启动任务,则将所述任务加入所述任务栈的栈顶。
[0009]本发明实施例第二方面提供一种任务栈管理装置,包括:
[0010]建立模块,用于在主系统中建立任务栈,并建立所述主系统和各子系统之间的通讯服务与监控服务,以使所述主系统与所述各子系统进行通讯并对所述各子系统进行监控;
[0011]判断模块,用于判断所述主系统或所述各子系统是否启动任务;
[0012]加入模块,用于若所述主系统或所述各子系统启动任务,则将所述任务加入所述任务栈的栈顶。
[0013]可以看出,在本发明实施例提供的技术方案中,在主系统中建立任务栈,并建立主系统和各子系统之间的通讯服务和监控服务,以使主系统与各子系统进行通讯并对各子系统进行监控,然后主系统再判断主系统或各子系统是否启动任务,若主系统或各子系统启动任务,则将该任务加入任务栈的栈顶。通过在主系统中建立任务栈,以及主系统对主系统和各子系统的任务启动情况同时进行监控,并在主系统或子系统启动任务时,将该任务加入主系统中的任务栈,从而可实现对系统任务的统一管理,操作方便,效率高。
【附图说明】
[0014]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0015]图1是本发明第一实施例提供的一种任务栈管理方法的流程示意图;
[0016]图2是本发明第二实施例提供的一种任务栈管理方法的流程示意图;
[0017]图3是本发明第三实施例提供的一种任务栈管理装置的结构示意图;
[0018]图4是本发明第四实施例提供的一种任务栈管理装置的结构示意图;
[0019]图5是本发明第五实施例提供的一种任务栈管理装置的结构示意图;
[0020]图6是本发明第六实施例提供的一种任务栈管理装置的结构示意图。
【具体实施方式】
[0021]本发明实施例提供了一种任务栈管理方法及装置,以期可以对多系统设备的任务进行统一管理。
[0022]为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0023]本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0024]本发明实施例的一种任务栈管理方法,一种任务栈管理方法包括:在所述主系统中建立任务栈,并建立所述主系统和各子系统之间的通讯服务与监控服务,以使所述主系统与所述各子系统进行实时通讯并对所述各子系统进行实时监控;判断所述主系统或所述各子系统是否启动任务;若所述主系统或所述各子系统启动任务,则将所述任务加入所述任务栈的栈顶。
[0025]首先参见图1,图1是本发明第一实施例提供的一种任务栈管理方法的流程示意图。其中,如图1所示,本发明第一实施例提供的一种任务栈管理方法可以包括:
[0026]S101、在主系统中建立任务栈,并建立所述主系统和各子系统之间的通讯服务与监控服务,以使所述主系统与所述各子系统进行通讯并对所述各子系统进行监控。
[0027]本发明方案主要应用于具有多系统的设备中,各个系统之间通过不同的硬件模块实现,不同的硬件模块之间可以进行通信。其中,主系统可以和各子系统进行通信,故主系统是指在多系统的设备中的,多个系统中对设备的各个模块起统一管理作用的系统,子系统则是与主系统相对应的,在主系统的统一管理控制下,对各个模块的功能进行管理的系统。
[0028]可选地,在本发明的一些可能的实施方式中,若实现各子系统与主系统之间的通信,以及各子系统与其它子系统之间的通信,则主系统可以设置为各个子系统中的任何一个系统。
[0029]例如,在本发明的一个实施例中,在同一个通信设备上同时装有Android系统和Windows系统时,可以以Windows系统为主系统,Android系统为子系统,从而由Windows系统对整个设备的工作进行管理,即该Windows系统不仅需要管理控制本系统的工作,还需要管理Android系统的工作,以及协调Windows系统及Android系统之间的工作。在设备的界面上显示时,可在主系统的界面上显示各子系统的应用图标,从而用户可在主系统的界面上通过该应用图标对各子系统的应用执行打开等操作,从而实现由主系统对子系统的各应用任务进行统一管理。同时,也可以将Andro i d系统设置为主系统,从而由该Andro i d系统对整个设备的工作进行管理。可选地,在本发明的一些可能的实施方式中,主系统的数目为一个,子系统的数目可以为一个或者多个。
[0030]在本发明实施例中,当开启通信设备时,主系统和各子系统启动。主系统启动的同时启动后台通讯服务,负责与各子系统通讯,相应地,子系统启动的同时也启动后台通讯服务,负责与主系统进行通讯,从而也实现各子系统的通讯服务;同时主系统启动后台监控服务,负责对主系统以及各子系统进行监控,相应地,子系统启动的同时也启动后台监控服务,负责监控本系统的情况,同时通过主系统与各子系统之间建立的通讯服务,各子系统将所监控到的本系统的情况发送给主系统,以实现主系统对各子系统的监控。
[0031 ]可选地,在本发明的一些可能的实施方式中,可以为主系统监控到各子系统的任务运行情况发生改变,从而指示各子系统将该情况发送给主系统,也可以为各子系统主动根据自己的任务情况的改变将该情况发送给主系统。
[0032]可选地,在本发明的一些可能的实施方式中,主系统和其它各子系统之间的通信方式可以为串行通信总线(Universal Serial Bus,简称USB)、串口和网络等。
[0033]在本发明实施例中,主系统与各子系统主要是对本系统各进行内存占用情况进行监控。
[0034]其中,任务栈是指用于存储系统中所启动的任务的记录,在本发明实施例中,该任务栈用于统一存储设备中各系统所启动的任务的记录,所以以下也称为多系统任务栈。
[0035]可选地,在本发明的一些可能的实施方式中,在主系统启动时,即在主系统中建立多系统任务桟。
[0036]S102、判断所述主系统或所述各子系统是否启动任务。
[0037]其中,对于各系统来说,任务与系统中所运行的应用进行对应,也即在系统启动了应用后,则会记录一个任务记录。
[0038]可选地,在本发明的一些可能的实施方式中,该任务可以为新任务,也即是主系统或者子系统新启动的任务,从而该任务对应的任务记录未存在多系统任务栈中,例如,在主系统打开浏览器应用时,可判断主系统启动了新的任务。
[0039]可选地,在本发明的另一些可能的实施方式中,该任务也可以为已经启动过的任务,即已存在于多系统任务栈中的任务,但由于当前未执行该任务,所以不存在于任务栈的栈顶,当系统重新打开该任务对应的应用时,相当于该系统启动了该任务。
[0040]S103、若所述主系统或所述各子系统启动任务,则将所述任务加入所述任务栈的栈顶。
[0041]其中,对于任务栈来说,各系统当前执行的任务进程处于任务栈的栈顶,而其它任务进程则排队存在于任务栈的其它位置,若主系统或者各子系统启动任务时,则将该进程加入任务栈的栈顶,从而使系统当前执行该任务。
[0042]可以看出,本实施例的方案中,在主系统中建立任务找,并建立主系统和各子系统之间的通讯服务和监控服务,以使主系统与各子系统进行实时通讯并对各子系统进行实时监控,然后主系统再判断主系统或各子系统是否启动任务,若主系统或各子系统启动任务,则将该任务加入任务栈的栈顶。通过在主系统中建立任务栈,以及主系统对主系统和各子系统的任务启动情况同时进行监控,并在主系统或子系统启动任务时,将该任务加入主系统中的任务栈,从而可实现对系统任务的统一管理,操作方便,效率高。
[0043]可选地,在本发明的一些 可能的实施方式中,所述判断所述各子系统是否启动任务,包括:
[0044]通过接收所述各子系统发送的任务启动指令来对判断所述各子系统是否启动任务。
[0045]其中,任务启动指令是指在子系统启动任务时发送给主系统的用于告知主系统已启动任务的指令。
[0046]可以理解,由于是由主系统对各系统的任务启动情况进行统一管理,所以在子系统启动任务时,通过发送任务启动指令给主系统,以告知主系统已启动任务,从而实现由系统对该任务进行统一管理。
[0047]可选地,在本发明的一些可能的实施方式中,在主系统判断主系统或各子系统是否启动任务之前,主系统还需要对该任务进行过滤,以过滤掉一些特殊的不能直接启动的应用。例如,对于Andr ο i d系统中的部分电视应用,不能直接启动。
[0048]可选地,在本发明的一些可能的实施方式中,在主系统判断主系统或各子系统是否启动任务时,可通过系统监控来判断,具体地,具有权限系统可以在系统底层添加监听回调,没有权限系统的则可以使用轮询的方式获取当前运行的程序。若运行的程序与上次检测到的不同,则认为其为新任务。
[0049]可选地,在本发明的一些可能的实施方式中,所述将所述任务加入所述任务栈的桟顶,包括:
[0050]判断所述任务是否存在于所述任务栈;
[0051 ]若所述任务存在于所述任务栈,则将所述任务移至所述任务栈的栈顶;
[0052]若所述任务不存在于所述任务栈,则在所述栈顶添加所述任务。
[0053]可以理解,由于启动的任务即为当前需要执行的应用,所以需要将该任务置于任务栈的栈顶以运行该任务对应的应用。
[0054]进一步地,可选地,在本发明的一些可能的实施方式中,对于主系统来说,若在主系统发现主系统启动了一个应用,首先对该应用进行过滤,若符合过滤条件,则生成一个任务记录,判断该任务记录是否已存在于多系统任务栈中,若已存在,则将其移至栈顶;若未在栈中,则将该任务记录插入栈中。
[0055]更进一步地,可选地,在本发明的一些可能的实施方式中,对于非主系统来说,若主系统接收到非主系统启动了一个应用,首先对该应用进行过滤,若符合过滤条件,判断该任务记录是否已存在于多系统任务栈中,若已存在,则将其移至栈顶;若未在栈中,则生成一个新的记录到桟顶。
[0056]可选地,在本发明的一些可能的实施方式中,所述方法还包括:
[0057]若所述任务对应的系统为所述主系统,则在所述主系统中启动所述任务;
[0058]若所述任务对应的系统为子系统,则指示所述子系统启动所述任务并同时将当前系统切换至所述子系统。
[0059]很容易理解,如果该任务对应的是主系统的任务,则需要在主系统中启动任务,此时不对系统进行切换,而如果该任务对应的是子系统的任务,则需要在子系统中启动该任务,同时由于如果在子系统中启动了该任务,那么自然当前所运行的系统即为该任务对应的系统,也即该子系统,从而也即将当前系统从原来的主系统切换至该子系统,从而实现了对任务的合理启动。
[0060]具体地,将当前系统切换至该子系统时,将整机的视频信号输入源、音频信号输入源、触摸输入等切换到该子系统,从而使该子系统做为当前系统能实现也外界设备的通信。
[0061]可选地,在本发明的一些可能的实施方式中,用户可以使用实体按键或者全局悬浮按键,启动最近任务列表,从而可在该任务列表上对任务进行操作,以启动应用。
[0062]更进一步地,用户可通过在底层拦截实体按键或者捕获全局悬浮按键获取打开任务列表消息。
[0063]更进一步地,最近任务列表应用与后台监控服务通讯,获取多系统任务栈并以适当的方式显示在界面上以供用户进行查看并执行启动,从而用户可根据多系统任务栈的记录判断该任务属于哪个系统,再在对应的系统进行打开。
[0064]更进一步地,用户也可在该显示出来的多系统任务栈上执行对任务的关闭操作。
[0065]更进一步地,用户还可通过在主系统中显示的各子系统中应用的应用图标启动该应用对应的任务。
[0066]更进一步地,在本发明的一些可能的实施方式中,打开应用的方式根据具体的系统而定,例如Android系统分析任务的对应的意图(intent),获取到相对应任务的包名和活动名(Activity),启动相应任务。
[0067]更进一步地,在本发明的一些可能的实施方式中,切换系统即将整机的视频信号输入源、音频信号输入源、触摸等切换到该系统。
[0068]可选地,在本发明的一些可能的实施方式中,所述方法还包括:
[0069]若所述任务对应的系统为所述主系统,则在启动任务失败时,将所述任务从所述任务桟移除;
[0070]若所述任务对应的系统为子系统,则在启动任务失败时,接收所述子系统返回的启动失败指令并将所述任务从所述任务栈移除。
[0071]可以理解,启动任务失败时,若该任务为主系统的任务,则由主系统在启动任务失败后,将该任务从任务栈移除,而若该系统为子系统,则由于是由子系统来启动任务,所以在子系统启动任务失败后,需要通过启动失败指令告知主系统将该任务从主系统中的多系统任务栈中移除,从而实现了对任务启动失败后的合理处理。
[0072]可选地,在本发明的一些可能的实施方式中,在任务启动失败后,在主系统的界面上弹出失败提示框,该提示框为全局提示框,也即由主系统对各个系统进行监控后,各个系统中存在任务启动失败指令均可通过该失败提示框提示用户。
[0073]为了便于更好理解和实施本发明实施例的上述方案,下面结合一些具体的应用场景进行举例说明。
[0074]请参见图2,图2是本发明第二实施例提供一种任务栈管理方法的流程示意图,其中,如图2所示,本发明第二实施例提供一种任务栈管理方法可以包括:
[0075]S201、在主系统中建立任务栈,并建立主系统和各子系统之间的通讯服务与监控服务,以使主系统与各子系统进行实时通讯并对各子系统进行实时监控。
[0076]本发明方案主要应用于具有多系统的设备中,各个系统之间通过不同的硬件模块实现,不同的硬件模块之间可以进行通信。其中,主系统可以和各子系统进行通信,故主系统是指在多系统的设备中的,多个系统中对设备的各个模块起统一管理作用的系统,子系统则是与主系统相对应的,在主系统的统一管理控制下,对各个模块的功能进行管理的系统。
[0077]可选地,在本发明的一些可能的实施方式中,若实现各子系统与主系统之间的通信,以及各子系统与其它子系统之间的通信,则主系统可以设置为各个子系统中的任何一个系统。
[0078]例如,在本发明的一个实施例中,在同一个通信设备上同时装有Android系统和Windows系统时,可以以Windows系统为主系统,Android系统为子系统,从而由Windows系统对整个设备的工作进行管理,即该Windows系统不仅需要管理控制本系统的工作,还需要管理Android系统的工作,以及协调Windows系统及Android系统之间的工作。在设备的界面上显示时,可在主系统的界面上显示各子系统的应用图标,从而用户可在主系统的界面上通过该应用图标对各子系统的应用执行打开等操作,从而实现由主系统对子系统的各应用任务进行统一管理。同时,也可以将Android系统设置为主系统,从而由该Android系统对整个设备的工作进行管理。
[0079]可选地,在本发明的一些可能的实施方式中,主系统的数目为一个,子系统的数目可以为一个或者多个。
[0080]在本发明实施例中,当开启通信设备时,主系统和各子系统启动。主系统启动的同时启动后台通讯服务,负责与各子系统通讯,相应地,子系统启动的同时也启动后台通讯服务,负责与主系统进行通讯,从而也实现各子系统的通讯服务;同时主系统启动后台监控服务,负责对主系统以及各子系统进行监控,相应地,子系统启动的同时也启动后台监控服务,负责监控本系统的情况,同时通过主系统也子系统之间建立的通讯服务,各子系统将所监控到的本系统的情况发送给主系统,以实现主系统对各子系统的监控。
[0081 ]可选地,在本发明的一些可能的实施方式中,可以为主系统监控到各子系统的任务运行情况发生改变,从而指示各子系统将该情况发送给主系统,也可以为各子系统主动根据自己的任务情况的改变将该情况发送给主系统。可选地,在本发明的一些可能的实施方式中,主系统和其它各子系统之间的通信方式可以为串行通信总线(Universal SerialBus,简称USB)、串口和网络等。
[0082]在本发明实施例中,主系统与各子系统主要是对本系统各进行内存占用情况进行监控。
[0083]其中,任务栈是指用于存储系统中所启动的任务的记录,在本发明实施例中,该任务栈用于统一存储设备中各系统所启动的任务的记录,所以以下也称为多系统任务栈。
[0084]可选地,在本发明的一些可能的实施方式中,在主系统启动时,S卩在主系统中建立多系统任务桟。
[0085]S202、判断主系统或各子系统是否启动任务。
[0086]其中,对于各系统来说,任务与系统中所运行的应用进行对应,也即在系统启动了应用后,则会记录一个任务记录。
[0087]可选地,在本发明的一些可能的实施方式中,该任务可以为新任务,也即是主系统或者子系统新启动的任务,从而该任务对应的任务记录未存在多系统任务栈中,例如,在主系统打开浏览器应用时,可判断主系统启动了新的任务。
[0088]可选地,在本发明的另一些可能的实施方式中,该任务也可以为已经启动过的任务,即已存在于多系统任务栈中的任务,但由于当前未执行该任务,所以不存在于任务栈的栈顶,当系统重新打开该任务对应的应用时,相当于该系统启动了该任务。
[0089]S203、若主系统或各子系统启动任务,则判断该任务是否存在于任务栈。
[0090]S204、若该任务存在于任务栈,则将该任务移至任务栈的栈顶。
[0091]S205、若该任务不存在于任务栈,则在栈顶 添加该任务。
[0092]进一步地,可选地,在本发明的一些可能的实施方式中,对于主系统来说,若在主系统发现主系统启动了一个应用,首先对该应用进行过滤,若符合过滤条件,则生成一个任务记录,判断该任务记录是否已存在于多系统任务栈中,若已存在,则将其移至栈顶;若未在栈中,则将该任务记录插入栈中。
[0093]更进一步地,可选地,在本发明的一些可能的实施方式中,对于非主系统来说,若主系统接收到非主系统启动了一个应用,首先对该应用进行过滤,若符合过滤条件,判断该任务记录是否已存在于多系统任务栈中,若已存在,则将其移至栈顶;若未在栈中,则生成一个新的记录到桟顶。
[0094]可以理解,由于启动的任务即为当前需要执行的应用,所以需要将该任务置于任务栈的栈顶以运行该任务对应的应用。
[0095]可以看出,本实施例的方案中,在主系统中建立任务栈,并建立主系统和各子系统之间的通讯服务和监控服务,以使主系统与各子系统进行实时通讯并对各子系统进行实时监控,然后主系统再判断主系统或各子系统是否启动任务,若主系统或各子系统启动任务,则将该任务加入任务栈的栈顶。通过在主系统中建立任务栈,以及主系统对主系统和各子系统的任务启动情况同时进行监控,并在主系统或子系统启动任务时,将该任务加入主系统中的任务栈,从而可实现对系统任务的统一管理,操作方便,效率高。
[0096]请参见图3,图3是本发明第三实施例提供一种任务栈管理方法的流程示意图,其中,如图3所示,本发明第三实施例提供一种任务栈管理方法可以包括:
[0097]S301、在主系统中建立任务栈,并建立主系统和各子系统之间的通讯服务与监控服务,以使主系统与各子系统进行实时通讯并对各子系统进行实时监控。
[0098]可选地,在本发明的一些可能的实施方式中,主系统和其它各子系统之间的通信方式可以为串行通信总线(Universal Serial Bus,简称USB)、串口和网络等。
[0099]在本发明实施例中,主系统与各子系统主要是对本系统各进行内存占用情况进行监控。
[0100]其中,任务栈是指用于存储系统中所启动的任务的记录,在本发明实施例中,该任务栈用于统一存储设备中各系统所启动的任务的记录,所以以下也称为多系统任务栈。
[0101]可选地,在本发明的一些可能的实施方式中,在主系统启动时,S卩在主系统中建立多系统任务桟。
[0102]S302、判断主系统或各子系统是否启动任务。
[0103]其中,对于各系统来说,任务与系统中所运行的应用进行对应,也即在系统启动了应用后,则会记录一个任务记录。
[0104]可选地,在本发明的一些可能的实施方式中,该任务可以为新任务,也即是主系统或者子系统新启动的任务,从而该任务对应的任务记录未存在多系统任务栈中,例如,在主系统打开浏览器应用时,可判断主系统启动了新的任务。
[0105]可选地,在本发明的另一些可能的实施方式中,该任务也可以为已经启动过的任务,即已存在于多系统任务栈中的任务,但由于当前未执行该任务,所以不存在于任务栈的栈顶,当系统重新打开该任务对应的应用时,相当于该系统启动了该任务。
[0106]S303、若该任务对应的系统为主系统,则在主系统中启动该任务。
[0107]S304、若该任务对应的系统为子系统,则指示子系统启动该任务并同时将当前系统切换至该子系统。
[0108]可选地,在本发明的另一些可能的实施方式中,若所述任务对应的系统为所述主系统,则在所述主系统中启动所述任务。
[0109]具体地,将当前系统切换至该子系统时,将整机的视频信号输入源、音频信号输入源、触摸输入等切换到该子系统,从而使该子系统做为当前系统能实现也外界设备的通信。
[0110]可选地,在本发明的一些可能的实施方式中,用户可以使用实体按键或者全局悬浮按键,启动最近任务列表,从而可在该任务列表上对任务进行操作,以启动应用。
[0111]更进一步地,用户可通过在底层拦截实体按键或者捕获全局悬浮按键获取打开任务列表消息。
[0112]更进一步地,最近任务列表应用与后台监控服务通讯,获取多系统任务栈并以适当的方式显示在界面上以供用户进行查看并执行启动,从而用户可根据多系统任务栈的记录判断该任务属于哪个系统,再在对应的系统进行打开。
[0113]更进一步地,用户也可在该显示出来的多系统任务栈上执行对任务的关闭操作。
[0114]更进一步地,用户还可通过在主系统中显示的各子系统中应用的应用图标启动该应用对应的任务。
[0115]更进一步地,在本发明的一些可能的实施方式中,打开应用的方式根据具体的系统而定,例如Android系统分析任务的对应的意图(intent),获取到相对应任务的包名和活动名(Activity),启动相应任务。
[0116]S305、若该任务对应的系统为主系统,则在启动任务失败时,将该任务从任务栈移除。
[0117]S306、若该任务对应的系统为子系统,则在启动任务失败时,接收子系统返回的启动失败指令并将该任务从任务桟移除。
[0118]可以理解,启动任务失败时,若该任务为主系统的任务,则由主系统在启动任务失败后,将该任务从任务栈移除,而若该系统为子系统,则由于是由子系统来启动任务,所以在子系统启动任务失败后,需要通过启动失败指令告知主系统将该任务从主系统中的多系统任务栈中移除,从而实现了对任务启动失败后的合理处理。
[0119]可选地,在本发明的一些可能的实施方式中,在任务启动失败后,在主系统的界面上弹出失败提示框,该提示框为全局提示框,也即由主系统对各个系统进行监控后,各个系统中存在任务启动失败指令均可通过该失败提示框提示用户。
[0120]可以看出,本实施例的方案中,在主系统中建立任务栈,并建立主系统和各子系统之间的通讯服务和监控服务,以使主系统与各子系统进行实时通讯并对各子系统进行实时监控,然后主系统再判断主系统或各子系统是否启动任务,若主系统或各子系统启动任务,则将该任务加入任务栈的栈顶。通过在主系统中建立任务栈,以及主系统对主系统和各子系统的任务启动情况同时进行监控,并在主系统或子系统启动任务时,将该任务加入主系统中的任务栈,从而可实现对系统任务的统一管理,操作方便,效率高。
[0121 ]下面再举例一个更为具体的应用场景。
[0122]若在一台通信设备中同时存在Windows系统和Android系统,用户可在这两个系统之间进行切换,并可设置其中的一个系统为主系统,若设置Windows系统为主系统,此时在终端界面上显示的是Windows的操作界面,并且可在Windows主系统中建立多系统任务栈以用于统一存储Windows系统和Android系统中所启动的任务,同时可在Windows系统显示Android系统中可启动的任务列表,从而实现在Windows中对两个系统的任务的统一管理。
[0123]当Android系统新启动音频播放应用时,生成任务记录发送给Windows系统,Windows系统经过过滤,再将该任务记录保存至多系统任务栈的栈顶。
[0124]更进一步地,用户可在Windows系统显示的任务列表中启动任务,如启动Android系统中的浏览器应用,此时可在任务列表中打开浏览器应用,由于该应用对应的是Android系统的应用,所以打开浏览器的同时将主系统切换至Android系统。
[0? 25] 更进一步地,若打开任务失败,此时未变换主系统,Andro id系统通知Windows系统任务启动失败,此时Windows系统将该任务记录从多系统任务找中移除。
[0126]本发明实施例还提供一种任务栈管理装置,该装置包括:
[0127]建立模块,用于在所述主系统中建立任务栈,并建立所述主系统和各子系统之间的通讯服务与监控服务,以使所述主系统与所述各子系统进行通讯并对所述各子系统进行监控;
[0128]判断模块,用于判断所述主系统或所述各子系统是否启动任务;
[0129]加入模块,用于若所述主系统或所述各子系统启动任务,则将所述任务加入所述任务栈的栈顶。
[0130]具体的,请参见图4,图4是本发明第四实施例提供的一种任务栈管理装置的结构示意图,其中,如图3所示,本发明第四实施例提供的一种任务栈管理装置400可以包括:[0131 ] 建立模块410、判断模块420和加入模块430。
[0132]其中,建立模块410,用于在所述主系统中建立任务栈,并建立所述主系统和各子系统之间的通讯服务与监控服务,以使所述主系统与所述各子系统进行通讯并对所述各子系统进行监控。
[0133]本发明方案主要应用于具有多系统的设备中,各个系统之间通过不同的硬件模块实现,不同的硬件模块之间可以进行通信。其中,主系统可以和各子系统进行通信,故主系统是指在多系统的设备中的,多个系统中对设备的各个模块起统一管理作用的系统,子系统则是与主系统相对应的,在主系统的统一管理控制下,对各个模块的功能进行管理的系统。
[0134]可选地,在本发明的一些可能的实施方式中,若实现各子系统与主系统之间的通信,以及各子系统与其它子系统之间的通信,则主系统可以设置为各个子系统中的任何一个系统。
[0135]例如,在本发明的一个实施例中,在同一个通信设备上同时装有Android系统和Windows系统时,可以以Windows系统为主系统,Android系统为子系统,从而由Windows系统对整个设备的工作进行管理,即该Windows系统不仅需要管理控制本系统的工作,还需要管理Android系统的工作,以及协调Windows系统及Android系统之间的工作。在设备的界面上显示时,可在主系统的界面上显示各子系统的应用图标,从而用户可在主系统的界面上通过该应用图标对各子系统的应用执行打开等操作,从而实现由主系统对子系统的各应用任务进行统一管理。同时,也可以将Android系统设置为主系统,从而由该Android系统对整个设备的工作进行管理。
[0136]可选地,在本发明的一些可能的实施方式中,主系统的数目为一个,子系统的数目可以为一个或者多个。
[0137]在本发明实施例中,当开启通信设备时,主系统和各子系统启动。主系统启动的同时启动后台通讯服务,负责与各子系统通讯,相应地,子系统启动的同时也启动后台通讯服务,负责与主系统进行通讯,从而也实现各子系统的通讯服务;同时主系统启动后台监控服务,负责对主系统以及各子系统进行监控,相应地,子系统启动的同时也启动后台监控服务,负责监控本系统的情况,同时通过主系统与各子系统之间建立的通讯服务,各子系统将所监控到的本系统的情况发送给主系统,以实现主系统对各子系统的监控。
[0138]可选地,在本发明的一些可能的实施方式中,可以为主系统监控到各子系统的任务运行情况发生改变,从而指示各子系统将该情况发送给主系统,也可以为各子系统主动根据自己的任务情况的改变将该情况发送给主系统。
[0139]可选地,在本发明的一些可能的实施方式中,主系统和其它各子系统之间的通信方式可以为串行通信总线(Universal Serial Bus,简称USB)、串口和网络等。
[0140]在本发明实施例中,主系统与各子系统主要是对本系统各进行内存占用情况进行监控。
[0141]其中,任务栈是指用于存储系统中所启动的任务的记录,在本发明实施例中,该任务栈用于统一存储设备中各系统所启动的任务的记录,所以以下也称为多系统任务栈。
[0142]可选地,在本发明的一些可能的实施方式中,在主系统启动时,S卩在主系统中建立多系统任务桟。
[0143]判断模块420,用于判断所述主系统或所述各子系统是否启动任务。
[0144]其中,对于各系统来说,任务与系统中所运行的应用进行对应,也即在系统启动了应用后,则会记录一个任务记录。
[0145]可选地,在本发明的一些可能的实施方式中,该任务可以为新任务,也即是主系统或者子系统新启动的任务,从而该任务对应的任务记录未存在多系统任务栈中,例如,在主系统打开浏览器应用时,可判断主系统启动了新的任务。
[0146]可选地,在本发明的另一些可能的实施方式中,该任务也可以为已经启动过的任务,即已存在于多系统任务栈中的任务,但由于当前未执行该任务,所以不存在于任务栈的栈顶,当系统重新打开该任务对应的应用时,相当于该系统启动了该任务。
[0147]加入模块430,用于若所述主系统或所述各子系统启动任务,则将所述任务加入所述任务栈的栈顶。
[0148]其中,对于任务栈来说,各系统当前执行的任务进程处于任务栈的栈顶,而其它任务进程则排队存在于任务栈的其它位置,若主系统或者各子系统启动任务时,则将该进程加入任务栈的栈顶,从而使系统当前执行该任务。
[0149]可以理解的是,本实施例的任务栈管理装置400的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
[0150]可以看出,本实施例的方案中,任务栈管理装置400在主系统中建立任务栈,并建立主系统和各子系统之间的通讯服务和监控服务,以使主系统与各子系统进行实时通讯并对各子系统进行实时监控,然后任务栈管理装置400再判断主系统或各子系统是否启动任务,若主系统或各子系统启动任务,则将该任务加入任务栈的栈顶。通过在主系统中建立任务栈,以及主系统对主系统和各子系统的任务启动情况同时进行监控,并在主系统或子系统启动任务时,将该任务加入主系统中的任务栈,从而可实现对系统任务的统一管理,操作方便,效率高。
[0151]请参见图5,图5是本发明第五实施例提供的一种任务栈管理装置的结构示意图,用于实现本发明实施例公开的任务栈管理方法。其中,图5所示的任务栈管理装置是由图4所示的任务栈管理装置进行优化得到的。具体地,在图5所示的任务栈管理装置500中除了包括图4所示的任务栈管理装置400的模块以及具有图4所示的任务栈管理装置400的模块的功能以外,还有以下扩展。
[0152]可选地,在本发明的一些可能的实施方式中,所述判断模块520,用于:
[0153]通过接收所述各子系统发送的任务启动指令来对判断所述各子系统是否启动任务。
[0154]其中,任务启动指令是指在子系统启动任务时发送给主系统的用于告知主系统已启动任务的指令。
[0155]可以理解,由于是由主系统对各系统的任务启动情况进行统一管理,所以在子系统启动任务时,通过发送任务启动指令给主系统,以告知主系统已启动任务,从而实现由系统对该任务进行统一管理。
[0156]可选地,在本发明的一些可能的实施方式中,在主系统判断主系统或各子系统是否启动任务之前,主系统还需要对该任务进行过滤,以过滤掉一些特殊的不能直接启动的应用。例如,对于Andr ο i d系统中的部分电视应用,不能直接启动。
[0157]可选地,在本发明的一些可能的实施方式中,在主系统判断主系统或各子系统是否启动任务时,可通过系统监控来判断,具体地,具有权限系统可以在系统底层添加监听回调,没有权限系统的则可以使用轮询的方式获取当前运行的程序。若运行的程序与上次检测到的不同,则认为其为新任务。
[0158]可选地,在本发明的一些可能的实施方式中,所述加入模块530,包括:
[0159]判断单元531,用于判断所述任务是否存在于所述任务栈;
[0160]第一加入单元532,用于若所述任务存在于所述任务栈,则将所述任务移至所述任务栈的栈顶;
[0161]第二加入单元533,用于若所述任务不存在于所述任务栈,则在所述栈顶添加所述任务。
[0162]进一步地,可选地,在本发明的一些可能的实施方式中,对于主系统来说,若在主系统发现主系统启动了一个应用,首先对该应用进行过滤,若符合过滤条件,则生成一个任务记录,判断该任务记录是否已存在于多系统任务栈中,若已存在,则将其移至栈顶;若未在栈中,则将该任务记录插入栈中。
[0163]更进一步地,可选地,在本发明的一些可能的实施方式中,对于非主系统来说,若主系统接收到非主系统启动了一个应用,首先对该应用进行过滤,若符合过滤条件,判断该任务记录是否已存在于多系统任务栈中,若已存在,则将其移至栈顶;若未在栈中,则生成一个新的记录到桟顶。
[0164]可选地,在本发明的一些可能的实施方式中,所述任务栈管理装置500还包括启动模块540,用于:
[0165]若所述任务对应的系统为所述主系统,则在所述主系统中启动所述任务;
[0166]若所述任务对应的系统为子系统,则指示所述子系统启动所述任务并同时将当前系统切换至所述子系统。
[0167]很容易理解,如果该任务对应的是主系统的任务,则需要在主系统中启动任务,此时不对系统进行切换,而如果该任务对应的是子系统的任务,则需要在子系统中启动该任务,同时由于如果在子系统中启动了该任务,那么自然当前所运行的系统即为该任务对应的系统,也即该子系统,从而也即将当前系统从原来的主系统切换至该子系统,从而实现了对任务的合理启动。
[0168]具体地,将当前系统切换至该子系统时,将整机的视频信号输入源、音频信号输入源、触摸输入等切换到该子系统,从而使该子系统做为当前系统能实现也外界设备的通信。
[0169]可选地,在本发明的一些可能的实施方式中,用户可以使用实体按键或者全局悬浮按键,启动最近任务列表,从而可在该任务列表上对任务进行操作,以启动应用。
[0170]更进一步地,用户可通过在底层拦截实体按键或者捕获全局悬浮按键获取打开任务列表消息。
[0171]更进一步地,最近任务列表应用与后台监控服务通讯,获取多系统任务栈并以适当的方式显示在界面上以供用户进行查看并执行启动,从而用户可根据多系统任务栈的记录判断该任务属于哪个系统,再在对应的系统进行打开。
[0172]更进一步地,用户也可在该显示出来的多系统任务栈上执行对任务的关闭操作。
[0173]更进一步地,用户还可通过在主系统中显示的各子系统中应用的应用图标启动该应用对应的任务。
[0174]更进一步地,在本发明的一些可能的实施方式中,打开应用的方式根据具体的系统而定,例如Android系统分析任务的对应的意图(intent),获取到相对应任务的包名和活动名(Activity),启动相应任务。
[0175]更进一步地,在本发明的一些可能的实施方式中,切换系统即将整机的视频信号输入源、音频信号输入源、触摸等切换到该系统。
[0176]可选地,在本发明的一些可能的实施方式中,所述任务栈管理装置500还包括移除模块550,用于:
[0177]若所述任务对应的系统为所述主系统,则在启动任务失败时,将所述任务从所述任务桟移除;
[0178]若所述任务对应的系统为子系统,则在启动任务失败时,接收所述子系统返回的启动失败指令并将所述任务从所述任务栈移除。
[0179]可以理解,启动任务失败时,若该任务为主系统的任务,则由主系统在启动任务失败后,将该任务从任务栈移除,而若该系统为子系统,则由于是由子系统来启动任务,所以在子系统启动任务失败后,需要通过启动失败指令告知主系统将该任务从主系统中的多系统任务栈中移除,从而实现了对任务启动失败后的合理处理。
[0180]可选地,在本发明的一些可能的实施方式中,在任务启动失败后,在主系统的界面上弹出失败提示框,该提示框为全局提示框,也即由主系统对各个系统进行监控后,各个系统中存在任务启动失败指令均可通过该失败提示框提示用户。
[0181]可以理解的是,本实施例的任务栈管理装置500的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
[0182]可以看出,本实施例的方案中,任务栈管理装置500在主系统中建立任务栈,并建立主系统和各子系统之间的通讯服务和监控服务,以使主系统与各子系统进行实时通讯并对各子系统进行实时监控,然 后任务栈管理装置500再判断主系统或各子系统是否启动任务,若主系统或各子系统启动任务,则将该任务加入任务栈的栈顶。通过在主系统中建立任务栈,以及主系统对主系统和各子系统的任务启动情况同时进行监控,并在主系统或子系统启动任务时,将该任务加入主系统中的任务栈,从而可实现对系统任务的统一管理,操作方便,效率高。
[0183]参见图6,图6是本发明第六实施例提供的任务栈管理装置的结构示意图。如图6所示,本发明第六实施例提供的一种任务栈管理装置600可以包括:至少一个总线601、与总线相连的至少一个处理器602以及与总线相连的至少一个存储器603。
[0184]其中,处理器602通过总线601,调用存储器603中存储的代码以用于在所述主系统中建立任务栈,并建立所述主系统和各子系统之间的通讯服务与监控服务,以使所述主系统与所述各子系统进行实时通讯并对所述各子系统进行实时监控;判断所述主系统或所述各子系统是否启动任务;若所述主系统或所述各子系统启动任务,则将所述任务加入所述任务栈的栈顶。
[0185]可选地,在本发明的一些可能的实施方式中,处理器602判断所述各子系统是否启动任务,包括:
[0186]通过接收所述各子系统发送的任务启动指令来对判断所述各子系统是否启动任务。
[0187]可选地,在本发明的一些可能的实施方式中,处理器602将所述任务加入所述任务桟的桟顶,包括:
[0188]判断所述任务是否存在于所述任务栈;
[0189]若所述任务存在于所述任务栈,则将所述任务移至所述任务栈的栈顶;
[0190]若所述任务不存在于所述任务栈,则在所述栈顶添加所述任务。
[0191]可选地,在本发明的一些可能的实施方式中,处理器602还用于:
[0192]若所述任务对应的系统为所述主系统,则在所述主系统中启动所述任务;
[0193]若所述任务对应的系统为子系统,则指示所述子系统启动所述任务并同时将当前系统切换至所述子系统。
[0194]可选地,在本发明的一些可能的实施方式中,处理器602还用于:
[0195]若所述任务对应的系统为所述主系统,则在启动任务失败时,将所述任务从所述任务桟移除;
[0196]若所述任务对应的系统为子系统,则在启动任务失败时,接收所述子系统返回的启动失败指令并将所述任务从所述任务栈移除。
[0197]可以理解的是,本实施例的任务栈管理装置600的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
[0198]可以看出,本实施例的方案中,任务栈管理装置600在主系统中建立任务栈,并建立主系统和各子系统之间的通讯服务和监控服务,以使主系统与各子系统进行实时通讯并对各子系统进行实时监控,然后任务栈管理装置600再判断主系统或各子系统是否启动任务,若主系统或各子系统启动任务,则将该任务加入任务栈的栈顶。通过在主系统中建立任务栈,以及主系统对主系统和各子系统的任务启动情况同时进行监控,并在主系统或子系统启动任务时,将该任务加入主系统中的任务栈,从而可实现对系统任务的统一管理,操作方便,效率高。
[0199]本发明实施例还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时包括上述方法实施例中记载的任何任务栈管理方法的部分或全部步骤。
[0200]需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
[0201 ]在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0202]在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
[0203]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0204]另外,在本发明的各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0205]所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(R0M,Read-0nly Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0206]以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
【主权项】
1.一种任务栈管理方法,其特征在于,所述方法包括: 在主系统中建立任务栈,并建立所述主系统和各子系统之间的通讯服务与监控服务,以使所述主系统与所述各子系统进行通讯并对所述各子系统进行监控; 判断所述主系统或所述各子系统是否启动任务; 若所述主系统或所述各子系统启动任务,则将所述任务加入所述任务栈的栈顶。2.根据权利要求1所述的方法,其特征在于,所述判断所述各子系统是否启动任务,包括: 通过接收所述各子系统发送的任务启动指令来对判断所述各子系统是否启动任务。3.根据权利要求2所述的方法,其特征在于,所述将所述任务加入所述任务栈的栈顶,包括: 判断所述任务是否存在于所述任务栈; 若所述任务存在于所述任务栈,则将所述任务移至所述任务栈的栈顶; 若所述任务不存在于所述任务栈,则在所述栈顶添加所述任务。4.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括: 若所述任务对应的系统为所述主系统,则在所述主系统中启动所述任务; 若所述任务对应的系统为子系统,则指示所述子系统启动所述任务并同时将当前系统切换至所述子系统。5.根据权利要求4所述的方法,其特征在于,所述方法还包括: 若所述任务对应的系统为所述主系统,则在启动任务失败时,将所述任务从所述任务栈移除; 若所述任务对应的系统为子系统,则在启动任务失败时,接收所述子系统返回的启动失败指令并将所述任务从所述任务栈移除。6.一种任务栈管理装置,其特征在于,所述装置包括: 建立模块,用于在主系统中建立任务栈,并建立所述主系统和各子系统之间的通讯服务与监控服务,以使所述主系统与所述各子系统进行通讯并对所述各子系统进行监控; 判断模块,用于判断所述主系统或所述各子系统是否启动任务; 加入模块,用于若所述主系统或所述各子系统启动任务,则将所述任务加入所述任务栈的栈顶。7.根据权利要求6所述的装置,其特征在于,所述判断模块,用于: 通过接收所述各子系统发送的任务启动指令来对判断所述各子系统是否启动任务。8.根据权利要求7所述的装置,其特征在于,所述加入模块,包括: 判断单元,用于判断所述任务是否存在于所述任务栈; 第一加入单元,用于若所述任务存在于所述任务栈,则将所述任务移至所述任务栈的栈顶; 第二加入单元,用于若所述任务不存在于所述任务栈,则在所述栈顶添加所述任务。9.根据权利要求6至8任一项所述的装置,其特征在于,所述装置还包括启动模块,用于: 若所述任务对应的系统为所述主系统,则在所述主系统中启动所述任务; 若所述任务对应的系统为子系统,则指示所述子系统启动所述任务并同时将当前系统切换至所述子系统。10.根据权利要求9所述的装置,其特征在于,所述装置还包括移除模块,用于: 若所述任务对应的系统为所述主系统,则在启动任务失败时,将所述任务从所述任务栈移除; 若所述任务对应的系统为子系统,则在启动任务失败时,接收所述子系统返回的启动失败指令并将所述任务从所述任务栈移除。
【专利摘要】本发明实施例公开了一种任务栈管理方法及装置,一种任务栈管理方法,包括:在主系统中建立任务栈,并建立所述主系统和各子系统之间的通讯服务与监控服务,以使所述主系统与所述各子系统进行通讯并对所述各子系统进行监控;判断所述主系统或所述各子系统是否启动任务;若所述主系统或所述各子系统启动任务,则将所述任务加入所述任务栈的栈顶。本发明实施例通过在主系统中建立任务栈,以及主系统对主系统和各子系统的任务启动情况同时进行监控,并在主系统或子系统启动任务时,将该任务加入主系统中的任务栈,从而可实现对系统任务的统一管理,操作方便,效率高。
【IPC分类】G06F9/48
【公开号】CN105487921
【申请号】CN201510821302
【发明人】任志斌
【申请人】广州视睿电子科技有限公司
【公开日】2016年4月13日
【申请日】2015年11月23日

最新回复(0)