添加 AppLifecycleState.hidden 的迁移指南
摘要
#新增了一个 hidden
状态到 AppLifecycleState
枚举中,用于表示应用程序不可见时的情况。
背景
#WidgetsBindingObserver.didChangeAppLifecycleState
调用时,AppLifecycleState
枚举用于指示应用程序处于哪个生命周期状态。
变更描述
#在 dart:ui
包中的 AppLifecycleState
枚举中添加了新的状态 AppLifecycleState.hidden
。
当所有应用程序视图都对用户不可见时,就会进入 hidden
状态。在 Android 和 iOS 上,每当状态机从非活动状态转换到暂停状态,或从暂停状态转换到非活动状态时,都会短暂进入此状态。进入暂停状态或非活动状态时,此状态不会改变。在其他平台上,当应用程序不可见时,它将处于此状态。
迁移指南
#如果代码具有处理 AppLifecycleState
枚举所有情况的 switch 语句,则需要添加一个新的 case 来处理 AppLifecycleState.hidden
状态。
迁移前的代码:
void didChangeAppLifecycleState(AppLifecycleState state) {
switch (state) {
case AppLifecycleState.resumed:
case AppLifecycleState.inactive:
// 应用程序可见时执行的操作...
break;
case AppLifecycleState.paused:
case AppLifecycleState.detached:
// 应用程序不可见时执行的操作...
break;
}
}
迁移后的代码:
void didChangeAppLifecycleState(AppLifecycleState state) {
switch (state) {
case AppLifecycleState.resumed:
case AppLifecycleState.inactive:
// 应用程序可见时执行的操作...
break;
case AppLifecycleState.hidden: // <-- 这是新的状态。
case AppLifecycleState.paused:
case AppLifecycleState.detached:
// 应用程序不可见时执行的操作...
break;
}
}
如果 switch 语句中已存在 default:
case,或者代码使用条件语句,则代码将无需修改即可编译,但是仍然需要评估 default case 或条件语句来确定是否也应处理 hidden
状态。
时间线
#包含的版本:3.11.0-16.0.pre
稳定版本:3.13.0
参考
#相关的 PR:
- PR 42418: 添加
AppLifecycleState.hidden
枚举值
除非另有说明,否则本网站上的文档反映的是 Flutter 的最新稳定版本。页面最后更新于 2025-01-30。 查看源代码 或 报告问题。