外观
AsyncLayoutInflater 为什么能优化 会改变生命周期吗?
标准回答
它把符合条件的布局创建工作放到后台执行,减少主线程被 Inflate 占用的时间;它不会重排 Android 规定的 Activity 生命周期。页面可能先进入 resumed,而内容布局稍后才创建并在主线程接入,因此内容显示时间与生命周期回调完成时间会分离。(AsyncLayoutInflater API)
机制解释
不是所有 View 都能后台创建。构造中依赖线程 Looper、创建 Handler 或非线程安全行为,都可能使异步创建不适用并回退主线程。回调默认路径与显式 callback Executor 的行为也需按所用版本区分;真正操作页面和挂载 View 必须回到主线程。
延伸追问
布局为什么一块块出现?可能分批 inflate 和挂载、数据分批绑定,或占位内容先显示。可先准备整体结构,再一次挂载,或定义明确的骨架屏策略;并在回调时检查页面是否已销毁、当前请求是否已过期。
内容来源
- Android 智能硬件 SDK 技术 Wiki · 原条目
Q60