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()) {
相关推荐
传奇开心果编程1 小时前
【Compose Multiplatform 跨端开发学与练】第7课 平台适配与互操作
android·windows·学习·ui·ios·kotlin·composer
mmsx1 小时前
Android 地图数据链路:从 GDAL、KML 到多引擎适配
android·kotlin
2601_968900771 小时前
大模型版本回归评估实战:从能力指标到额度口径的完整链路
android·数据挖掘·回归
ao-weilai4 小时前
MySQL数据库:基本查询
android·数据库·mysql
事圆则缓4 小时前
Kotlin 泛型方差实战:out、in、星投影与类型擦除
android·开发语言·kotlin
传奇开心果编程6 小时前
【Compose Multiplatform 跨端开发学与练】第5课 网络与数据层
android·网络·学习·ui·ios·kotlin·composer
ao-weilai7 小时前
MySQL数据库:内置函数
android·数据库·mysql
SWAGGY..7 小时前
【C++进阶】:(7)红黑树的原理与 C++ 实现:结构设计、插入调整及性质验证
android·java·开发语言·c++·算法
Android打工仔7 小时前
CoroutineScheduler 设计解析(上)—— 为什么 Dispatchers.IO 会创建更多线程?
android·kotlin·源码阅读
martindelophy9 小时前
用自然语言剪视频:我们在 Timeline Studio 中实现了 ChatCut 对话剪辑
android·音视频