AppState
AppState 可以告诉你应用处于前台还是后台,并在状态发生变化时通知你。
AppState 经常用于在处理推送通知时确定意图和适当的行为。
应用状态
active- 应用正在前台运行background- 应用正在后台运行。用户可能:- 位于其他应用中
- 位于主屏幕
- [Android] 位于其他
Activity中,包括自动填充凭据选择器等临时系统活动(即使该活动由你的应用或系统启动)
- [iOS]
inactive- 这是在前台和后台之间切换时,以及进入多任务视图、打开通知中心或收到来电等非活动期间出现的状态。
如需更多信息,请参阅 Apple 的文档
基本用法
如需查看当前状态,可以检查 AppState.currentState,它会保持最新状态。
信息
如果你使用的是旧版架构,currentState 在启动时将为 null,直到从原生端异步获取该值。
这个示例看起来只会显示“当前状态为:active”,因为应用只有在 active 状态下对用户可见。如果你想要尝试运行这段代码,我们建议使用你自己的设备,而不是嵌入式预览。
参考
事件
change
当应用状态发生变化时会接收到此事件。监听器会接收当前应用状态值中的一个值。
memoryWarning iOS
当应用从操作系统收到内存警告时触发。
focus Android
当应用获得焦点时接收(用户正在与应用交互)。
blur Android
当用户未主动与应用交互时接收。在用户下拉通知抽屉等情况下很有用。AppState 不会发生变化,但会触发 blur 事件。
方法
addEventListener()
React TSX
static addEventListener(
type: AppStateEvent,
listener: (state: AppStateStatus) => void,
): NativeEventSubscription;
设置一个函数,以便在 AppState 发生指定事件类型时调用。eventType 的有效值如上所列。返回 EventSubscription。
属性
currentState
React TSX
static currentState: AppStateStatus;