[发明专利]一种智能终端应用切换方法有效

专利信息
申请号: 201611218456.0 申请日: 2016-12-26
公开(公告)号: CN106648869B 公开(公告)日: 2019-06-14
发明(设计)人: 肖剑锋 申请(专利权)人: 竞技世界(北京)网络技术有限公司
主分类号: G06F9/48 分类号: G06F9/48;G06F3/0481;G06F3/0488;G06F3/0489
代理公司: 北京冠和权律师事务所 11399 代理人: 朱健;陈国军
地址: 100085 北京市怀*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要: 一种智能终端应用切换方法,获取智能终端系统版本号;根据系统版本号获得对应的应用进程信息;生成最近应用列表以及可用最近应用列表;其中所述最近应用列表用于存储最近应用;可用最近应用列表用于存储经过过滤后的合适的最近应用;提取最近应用列表中的应用进程,判断是否符合判断规则,如果不符合,则将其过滤,如果符合则将其保存在可用最近应用列表;切换时,将最新的后台应用切换为前台应用;同时前台应用被切换为后台应用;再次切换时,将最新后台应用切换为前台应用,同时前台应用被切换为后台应用;重复切换,实现两个应用之间快速切换。
搜索关键词: 一种 智能 终端 应用 切换 方法
【主权项】:
1.一种适用于Android5.0以下系统版本的智能终端应用切换方法,其特征在于:S501:启动切换函数,获取代表系统版本的整型常量android.os.Build.VERSION.SDK_INT,判断其值是否小于21,当小于21时启动对应的切换函数;S502:定义两个列表,一个为最近应用列表(recentTasks),另一个为可用最近应用列表(availableRecentTasks);列表中的元素类型为RecentTaskInfo:定义两个列表类型的变量recentTasks和availableRecentTasks,列表类型为ArrayList<RecentTaskInfo>,列表每个元素为RecentTaskInfo类型的变量;其中最近应用列表(recentTasks)用于存储最近应用;可用最近应用列表(availableRecentTasks)用于存储经过过滤后的合适的后台进程应用;S503:调用ActivityManager界面管理器的getRunningAppProcesses方法获取到正在运行的进程信息,生成一个临时进程列表:ActivityManager界面管理器中的getRunningAppProcesses方法能够返回当前系统正在运行的进程信息;所述临时进程列表每个元素为RunningAppProcessInfo类型的变量,它存储有每个进程的详细信息,详细信息包括进程名称,进程ID,用户ID;S504:轮询临时进程列表,将临时进程列表中的元素依次导入一个HashMap类型的变量mapInfo中:定义一个HashMap<String, RunningAppProcessInfo>类型的HashMap,命名为mapInfo;使用循环的方式,依次轮询通过getRunningAppProcesses方法返回的临时进程列表,将临时进程列表的每个元素和对应的包名相对应,存储到HashMap 变量mapInfo中,其中包名为对应的key值,RunningAppProcessInfo元素为value值;S505:调用ActivityManager界面管理器的getRecentTasks(3,2),得到最近打开的3个应用程序,并将经过过滤后的合适的后台进程应用保存到最近应用列表(recentTasks)中:通过ActivityManager界面管理器的getRecentTasks(3,2)得到最近打开的3个应用程序;将最近打开的3个应用程序中不可用的应用过滤掉,将经过过滤后的合适的后台进程应用保存到最近应用列表(recentTasks)中;S506:使用循环,轮询最近应用列表(recentTasks):使用循环,开始轮询最近应用列表(recentTasks),依次取出每个元素;循环结束,则执行S5018;否则执行S507;S507:获取当前元素,每个元素是RecentTaskInfo类型的,这个类型保存有运行进程的详细信息,根据元素baseIntent属性获取到对应后台进程应用的Intent:每个元素为RecentTaskInfo类型的数据,它存储有每个后台进程应用的详细信息;通过baseIntent属性获取启动后台进程应用的Intent,通过获得的启动后台进程应用的Intent可以将后台进程应用切换到前台;S508:判断后台进程应用的Intent是否为空,如果为空则执行S509,如果不为空则继续执行S5010;S509:继续循环,取最近应用列表(recentTasks)的下一个元素:如果后台进程应用的Intent不合理,则需要跳过此轮循环,然后获取最近应用列表(recentTasks)的下一个元素,继续进行轮询;S5010:判断后台进程应用的Intent对应的后台进程应用是否为桌面应用:如果后台进程应用为桌面应用,需要将其过滤掉,返回S509,如果后台进程应用不为桌面应用,则继续执行S5011;S5011:根据后台进程应用的Intent获取对应后台进程应用的包名packageName和ComponentName组件对象:如果后台进程应用的Intent不为空,对应的后台进程应用也不是桌面应用,则通过getComponent() 方法获取到后台进程应用的Intent对应的ComponentName组件对象,ComponentName是实现了Parcelable的一个类,其中保存有包名和启动类的类名信息;S5012:判断后台进程应用的Intent对应的ComponentName组件对象是否为空,如果为空,将后台进程应用过滤掉,返回S509,如果不为空则继续执行S5013;S5013:根据包名packageName查询HashMap变量mapInfo,得到每个包名对应的RunningAppProcessInfo进程详情对象:如果后台进程应用的Intent对应的ComponentName组件对象不为空,获取后台进程应用的Intent对应的ComponentName组件对象存储的包名,然后通过存储的包名查询之前建立的HashMap变量mapInfo,找到包名对应的RunningAppProcessInfo 类型的元素,获取到包名对应的RunningAppProcessInfo进程详情对象;S5014:判断包名对应的RunningAppProcessInfo进程详情对象是否为空:对得到的包名对应的RunningAppProcessInfo进程详情对象进行是否为空的判断,如果为空,则返回S509取下一个元素继续循环,不为空则表示是一个实体进程详情对象,继续执行S5015;S5015:判断包名对应的RunningAppProcessInfo进程是否是一个有效的进程: 继续判断包名对应的RunningAppProcessInfo进程是否为有效的进程;判断通过对应的ComponentName组件对象能否进一步查询得到界面的ActivityInfo信息数据,如果能够查询得到,则表示包名对应的RunningAppProcessInfo进程为一个有效的进程,继续执行S5016;否则返回S509取下一个元素继续循环;S5016:判断可用最近应用列表(availableRecentTasks)大小是否小于3,如果是,则执行S5017;如果否,则继续执行S5018;S5017:如果满足可用最近应用列表(availableRecentTasks)元素个数小于3个的要求,将一个有效的进程添加到可用最近应用列表(availableRecentTasks)中,返回S509;S5018:跳出或正常结束循环:最近应用列表(recentTasks)轮询完成,或者可用最近应用列表(availableRecentTasks)已经取到了两个元素,退出循环,不再轮询;执行S5019;S5019:判断可用最近应用列表(availableRecentTasks)的元素个数是否为0;如果为0,则执行S5030提示用户“无可切换应用”,说明没有后台进程应用可以进行切换,然后退出函数,结束切换;如果不为0,则执行S5020;S5020:判断可用最近应用列表(availableRecentTasks)的元素个数是否大于1:如果否,则执行S5021;如果是,则执行S5022;S5021:如果可用最近应用列表(availableRecentTasks)只有一个元素,取得可用最近应用列表(availableRecentTasks)中的这一个元素和最近应用列表(recentTasks)的第一个元素,继续执行S5024;S5022:获取最近应用列表(recentTasks)的第一个元素;S5023:判断最近应用列表(recentTasks)的第一个元素对应的后台进程应用是否为桌面应用;如果是,则执行S5025;如果否,则执行S5026;S5024:判断这两个元素是否相等:判断可用最近应用列表(availableRecentTasks)的唯一元素和最近应用列表(recentTasks)中的第一个元素是否相等,如果相等,则表示后台没有其他后台进程应用了,只有一个前台程序,此时没有后台进程应用可以切换,执行S5030提示用户“无可切换应用”;如果不相等,则执行S5027;S5025:取得可用最近应用列表(availableRecentTasks)的第一个后台进程应用的Intent作为启动Intent:如果最近应用列表(recentTasks)的第一个元素对应的后台进程应用是桌面应用,则取出可用最近应用列表(availableRecentTasks)的第一个后台进程应用的Intent,作为切换的对象;S5026:取得可用最近应用列表(availableRecentTasks)的第二个后台进程应用的Intent作为启动Intent;S5027:将可用最近应用列表(availableRecentTasks)的唯一元素作为启动Intent;S5028:根据启动Intent,调用Context的startActivity方法启动后台进程应用;S5029:判断startActivity方法执行是否有异常发生;如果有异常,则执行S5030;如果没有异常,则执行S5031;S5030:提示用户“无可切换应用”;S5031:未发生异常,可以认为切换成功;S5032:函数退出,结束。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于竞技世界(北京)网络技术有限公司,未经竞技世界(北京)网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201611218456.0/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top