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()) {
相关推荐
zhaoyufei13310 小时前
Android13删除Taskbar
android
6***B4812 小时前
存储过程(SQL)
android·数据库·sql
学困昇13 小时前
C++中的异常
android·java·c++
Jerry13 小时前
问题记录 - Android IdleHandler 没有执行
android
没有了遇见14 小时前
Android ButterKnife Android 35情况下 适配 Gradle 8.+
android
方白羽14 小时前
Android多层嵌套RecyclerView滚动
android·java·kotlin
菜就多学15 小时前
SurfaceControlViewHost 实现跨进程UI渲染
android·设计
2501_9151063215 小时前
iOS App 测试工具全景分析,构建从开发调试到线上监控的多阶段工具链体系
android·测试工具·ios·小程序·uni-app·iphone·webview
小羊在奋斗16 小时前
MySQL表的约束:从基础到核心(附场景+案例)
android·数据库·mysql
e***193517 小时前
MySQL-mysql zip安装包配置教程
android·mysql·adb