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

相关推荐
喷火龙8号2 小时前
单 Token 认证方案的进阶优化:透明刷新机制
后端·架构
葫芦的运维日志3 小时前
网站也要身份证:HTTPS 证书申请指南
架构
范特西林3 小时前
实战演练——从零实现一个高性能 Binder 服务
android
范特西林4 小时前
代码的生成:AIDL 编译器与 Parcel 的序列化艺术
android
范特西林4 小时前
深入内核:Binder 驱动的内存管理与事务调度
android
范特西林5 小时前
解剖麻雀:Binder 通信的整体架构全景图
android
范特西林5 小时前
破冰之旅:为什么 Android 选择了 Binder?
android
stark张宇6 小时前
MySQL 核心内幕:从索引原理、字段选型到日志机制与外键约束,一篇打通数据库任督二脉
数据库·mysql·架构
兆子龙6 小时前
【React】19 深度解析:掌握新一代 React 特性
前端·架构
奔跑中的蜗牛6666 小时前
一次播放器架构升级:Android 直播间 ANR 下降 60%
android