[发明专利]一种实现插件的多任务栈的方法和装置有效
申请号: | 201710267234.6 | 申请日: | 2017-04-21 |
公开(公告)号: | CN107193587B | 公开(公告)日: | 2020-10-27 |
发明(设计)人: | 胡俊杰;张炅轩 | 申请(专利权)人: | 北京奇虎科技有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445;G06F9/48;G06F9/451 |
代理公司: | 深圳市世纪恒程知识产权代理事务所 44287 | 代理人: | 胡海国 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 实现 插件 任务 方法 装置 | ||
本发明提供了一种实现插件的多任务栈的方法和装置。该方法包括:获取宿主的插件的多个任务,在宿主的配置文件中注册所述多个任务各自的活动界面所属的Task,其中,不同的任务各自的活动界面属于不同的Task;当宿主加载插件并启动所述多个任务中的任意任务的当前活动界面时,在所述配置文件中查找所述当前活动界面所属的目标Task;在宿主中查找所述目标Task对应的所有注册界面,并依据预设的选取策略从所述目标Task对应的所有注册界面中选取目标注册界面;将所述目标注册界面分配给所述当前活动界面使用。本发明实施例使得不同的任务之间能够自由切换,无需退出任务。
技术领域
本发明涉及计算机处理技术领域,特别是一种实现插件的多任务栈的方法和装置。
背景技术
在软件开发中,为了方便对软件进行功能扩展,可以采用插件方式进行开发,将软件所要实现的一个一个功能封装在插件中,最后将各个插件集成在软件主程序包中一同发布。
Task是一个具有栈结构的容器,可以放置多个活动界面的实例。例如,启动一个应用,系统就会为之创建一个Task,来放置根Activity;默认情况下,一个Activity启动另一个Activity时,两个Activity是放置在同一个Task中的,后者被压入前者所在的Task栈,当用户按下后退键,后者从Task被弹出,前者又显示在幕前。
插件的所有任务(一个任务可以是一种功能)都只能在一个Task中运行,因而无法进行多任务切换。例如,当前用户在操作任务A,打开了任务A的若干个界面;用户从任务A打开任务B,在任务B进行若干操作;如果此时用户需要临时切换到任务A,则必须退出任务B,才能回到任务A。那么,如何实现多任务间的自由切换成为亟待解决的技术问题。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种实现插件的多任务栈的方法和装置。
依据本发明实施例的一方面,提供了一种实现插件的多任务栈的方法,包括:
获取宿主的插件的多个任务,在宿主的配置文件中注册所述多个任务各自的活动界面所属的Task,其中,不同的任务各自的活动界面属于不同的Task;
当宿主加载插件并启动所述多个任务中的任意任务的当前活动界面时,在所述配置文件中查找所述当前活动界面所属的目标Task;
在宿主中查找所述目标Task对应的所有注册界面,并依据预设的选取策略从所述目标Task对应的所有注册界面中选取目标注册界面;
将所述目标注册界面分配给所述当前活动界面使用。
可选地,所述多个任务各自能够实现插件的不同功能。
可选地,所述Task是具有栈结构的容器,能够放置一个或多个活动界面。
可选地,同一个任务的活动界面属于同一个Task。
可选地,所述在宿主的配置文件中注册所述多个任务各自的活动界面所属的Task,包括:
获取宿主的多个Task;
在宿主的配置文件中注册所述多个任务各自的活动界面在所述多个Task中所属的Task。
可选地,所述在宿主的配置文件中注册所述多个任务各自的活动界面在所述多个Task中所属的Task,包括:
在宿主的配置文件中注册所述多个任务各自的活动界面的TaskAffinity属性,由该属性指示活动界面在所述多个Task中所属的Task。
可选地,所述获取宿主的多个Task,包括:
读取宿主的配置文件;
查找在宿主的配置文件中注册的宿主的多个Task。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司,未经北京奇虎科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710267234.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种数据中心用末端空调群控系统
- 下一篇:胶管在线缺陷检测方法