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()) {
相关推荐
代龙涛3 小时前
WordPress single.php 文章模板开发详解
android
YF02114 小时前
Flutter 编译卡顿解决方案
android·flutter·ios
空中海5 小时前
第十二章:安卓实战架构与最佳实践
android·架构
angerdream7 小时前
Android手把手编写儿童手机远程监控App之四大组件详解2
android
kerli7 小时前
基于 kmp/cmp 的跨平台图片加载方案 - 适配 Android View/Compose/ios
android·前端·ios
半条-咸鱼8 小时前
基于安卓的 WAV 音频采集方案_含工具
android·音视频
九皇叔叔8 小时前
MySQL8.0 版本安装部署
android·adb
OneLIMS9 小时前
OneLIMS 安卓 APK 一键打包说明文档
android
阿亮爱学代码11 小时前
初识Android界面布局
android·xml·view·viewgroup