Android 系统设置拉起后台非全屏应用不隐藏前台应用

Android 系统设置拉起后台非全屏应用不隐藏前台应用

一、前言

Android 原生流程中,如果切换后台应用界面,会先执行返回Home界面,再切换到新的应用界面;

验证方法:手机打开一个应用1界面,底部往上滑,切换一个之前的后台应用2到前台,左右滑动退出应用2,发现回到的是Home界面而不是应用1界面。

原生在startActivityFromRecent时,先回到Home了 。

但是Android 大屏设备,一般是需要显示多个应用,界面部分应用都是悬浮Activity,理想效果是:不返回Home界面,直接拉起后台应用。

下面是实现的代码,其实就是在关键方法返回就行。

二、拉起后台非全屏应用不隐藏前台应用实现代码

framework\base\services\core\java\com\android\server\wm\TaskDisplayArea.java

    void moveHomeRootTaskToFront(String reason) {
      
        boolean isNeedBackHome = android.os.SystemProperties.getBoolean(
                "persist.debug.isNeedBackHome", false);
        if (!isNeedBackHome) { //直接返回,就不会往下执行到Home操作
            return;
        }
      
        final Task homeRootTask = getOrCreateRootHomeTask(); //会新建一个Home界面栈
        if (homeRootTask != null) {
            homeRootTask.moveToFront(reason);
        }
    }

这里一般使用prop属性控制,因为有些特殊应用的界面处理,还是要先把其他应用拉到后台的。

具体流程其实不太清楚,这个只是简单记录一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

峥嵘life

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值