moveStackToTaskDisplayArea方法详解

基于Android R版本分析

在Android R的move-stack接口中,我们发现在moveStackToTaskDisplayArea方法中,Android R相较于Android S缺少了一个stack.resumeNextFocusAfterReparent();逻辑的调用,而这个逻辑的实现功能,就是恢复当前TaskDisplayArea中Top Task的生命周期状态和visible状态;

在resumeNextFocusAfterReparent()方法中执行了3个逻辑:

  • adjustFocusToNextFocusableTask
  • resumeFocusedStacksTopActivities
  • ensureActivitiesVisible

resumeNextFocusAfterReparent

这个方法是Android R中缺省的一个方法,需要开发者自己在Task类中实现该方法的逻辑(参考Android S);

csharp 复制代码
void resumeNextFocusAfterReparent() {
    adjustFocusToNextFocusableTask("reparent", true /* allowFocusSelf */,
                                   true /* moveDisplayToTop */);
    mRootWindowContainer.resumeFocusedStacksTopActivities();
    mRootWindowContainer.ensureActivitiesVisible(null /* starting */, 0 /* configChanges */,
                                                 !PRESERVE_WINDOWS);
}

上述方法中涉及到的三个方法都是Android R中已经存在的,可以直接调用即可;

adjustFocusToNextFocusableTask

resumeFocusedStacksTopActivities

ensureActivitiesVisible

相关推荐
小成C1 小时前
Vibe Coding 时代,研发体系该怎么重新分工
人工智能·架构·全栈
Flywith242 小时前
【每日一技】Raycast 实现 scrcpy 的快捷显示隐藏
android·前端
没有了遇见3 小时前
Android(Coil,Glide)大量图片加载缓存清理问题(二 Coil处理)
android
Assby3 小时前
从洋葱模型看Java与Go的设计哲学:为什么它们如此不同?
java·后端·架构
城东米粉儿3 小时前
Android Dagger2笔记
android
没有了遇见3 小时前
Android(Coil,Glide)大量图片加载缓存清理问题(一)
android
恋猫de小郭3 小时前
谷歌 Genkit Dart 正式发布:现在可以使用 Dart 和 Flutter 构建全栈 AI 应用
android·前端·flutter
曾经我也有梦想5 小时前
Day4 Kotlin 高级特性
android
simplepeng5 小时前
Compose Multiplatform 中的 Navigation 3
android