手势返回会收到客户端的一个callback,部分应用如电话和计算器callback返回值为-1,导致流程不同。
原生逻辑会对这种特殊情况做进一步判断,并添加部分动画效果导致异常。
目前可以仅针对如果是返回到home这种情况(减少影响),做拦截规避此问题。
diff --git a/services/core/java/com/android/server/wm/BackNavigationController.java b/services/core/java/com/android/server/wm/BackNavigationController.java
old mode 100644
new mode 100755
index d07cc68af890..18b86e843d08
--- a/services/core/java/com/android/server/wm/BackNavigationController.java
+++ b/services/core/java/com/android/server/wm/BackNavigationController.java
@@ -245,6 +245,9 @@ class BackNavigationController {
}
}
infoBuilder.setType(backType);
+ if (backType == BackNavigationInfo.TYPE_RETURN_TO_HOME) {
+ return infoBuilder.build();
+ }
prevTaskId = prevTask != null ? prevTask.mTaskId : 0;
prevUserId = prevTask != null ? prevTask.mUserId : 0;