android10 卸载应用出现回退栈异常问题
打开设置,打开APP1,使用adb uninstall 卸载APP1/或者杀掉APP1进程,没有回到设置而是回到了桌面
- 抓取eventlog,查看ams/wms打印,发现“am_focused_stack: appDied leftTaskHistoryEmpty”
- 源码中搜索“leftTaskHistoryEmpty”,发现ActivityStack中当activity stack清空时会回到launcher
- 去掉回到launcher逻辑即可
- 对比 android13没有该现象,Android10原生设计逻辑如此,高版本wms和ams逻辑变化较大
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()) {