android10 卸载应用出现回退栈异常问题

打开设置,打开APP1,使用adb uninstall 卸载APP1/或者杀掉APP1进程,没有回到设置而是回到了桌面

  1. 抓取eventlog,查看ams/wms打印,发现"am_focused_stack: appDied leftTaskHistoryEmpty"
  2. 源码中搜索"leftTaskHistoryEmpty",发现ActivityStack中当activity stack清空时会回到launcher
  3. 去掉回到launcher逻辑即可
  4. 对比 android13没有该现象,Android10原生设计逻辑如此,高版本wms和ams逻辑变化较大
java 复制代码
diff --git a/services/core/java/com/android/server/wm/ActivityStack.java b/services/core/java/com/android/server/wm/ActivityStack.java
index d1c767aeb444..0d1fa0507b63 100644
--- a/services/core/java/com/android/server/wm/ActivityStack.java
+++ b/services/core/java/com/android/server/wm/ActivityStack.java
@@ -5450,7 +5450,7 @@ class ActivityStack extends ConfigurationContainer {
                     && mRootActivityContainer.isTopDisplayFocusedStack(this)) {
                 String myReason = reason + " leftTaskHistoryEmpty";
                 if (!inMultiWindowMode() || adjustFocusToNextFocusableStack(myReason) == null) {
-                    getDisplay().moveHomeStackToFront(myReason);
+                    // getDisplay().moveHomeStackToFront(myReason);
                 }
             }
             if (isAttached()) {
相关推荐
KimLiu3 分钟前
适合Android开发者的Flutter学习指南 : 一、搭建Flutter环境
android·前端·flutter
我最厉害。,。18 分钟前
PHP 反序列化&原生类 TIPS&字符串逃逸&CVE 绕过漏洞&属性类型特征
android·开发语言·php
二流小码农1 小时前
鸿蒙开发:如何更新对象数组
android·ios·harmonyos
Billy_Zuo1 小时前
Android Studio中创建第一个Flutter项目
android·flutter·android studio
RabbitYao1 小时前
Google TextToSpeech apk 添加离线语音包再重新编译
android
w23617346013 小时前
Android四大核心组件
android·四大组件
Dnelic-3 小时前
移动通信行业术语
android·telephony·自学笔记
每次的天空4 小时前
Android学习总结之扩展基础篇(一)
android·java·学习
心之所向,自强不息4 小时前
关于Android Studio的Gradle各项配置2
android·gradle·android studio
EQ-雪梨蛋花汤4 小时前
【Flutter】Unity 三端封装方案:Android / iOS / Web
android·flutter·unity