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()) {
相关推荐
IT猿手33 分钟前
2025最新智能优化算法:沙狐优化(Rüppell‘s Fox Optimizer,RFO)算法求解23个经典函数测试集,完整MATLAB代码
android·算法·matlab·迁移学习·优化算法·动态多目标优化·动态多目标进化算法
开发者如是说3 小时前
言叶是如何对文件进行端到端加密的
android·kotlin·swift
小李飞飞砖3 小时前
kotlin中的冷流和热流
android·开发语言·kotlin
HX4364 小时前
MP - Realm (not just realm)
android·ios·全栈
嘉小华4 小时前
Android 协程全景式深度解析:第一章 协程基础本质论
android
嘉小华4 小时前
Kotlin初始化全解析:深入理解对象创建的内部机制,避开常见陷阱
android
嘉小华4 小时前
Android 协程全景式深度解析:第二章 结构化并发全解
android
东风西巷6 小时前
ProCCD复古相机:捕捉复古瞬间
android·数码相机·智能手机·生活·软件需求
何盖(何松影)15 小时前
Android T startingwindow使用总结
android
小李飞飞砖16 小时前
Android 依赖注入框架详解
android