AppState
AppState 能告诉你应用当前是在前台还是在后台,并且能在状态变化的时候通知你。
AppState 通常在处理推送通知的时候用来决定内容和对应的行为。
App States
active- 应用正在前台运行background- 应用正在后台运行。用户可能面对以下几种情况:- 在别的应用中
- 停留在桌面
- [Android] 处在另一个
Activity中(即便是由你的应用拉起的)
- [iOS]
inactive- 此状态表示应用正在前后台的切换过程中,或是处在系统的多任务视图、通知中心,又或是处在来电状态中。
要了解更多信息,可以阅读 Apple 的文档。
基本用法
要获取当前的状态,你可以使用 AppState.currentState,这个变量会一直保持更新。不过在启动的过程中,currentState 可能为 null,直到 AppState 通过 bridge 获取到值为止。
上面的这个例子只会显示"Current state is: active",这是因为应用只有在 active 状态下才能被用户看到。null 状态只会在启动时短暂出现。如果你想尝试这段代码,我们建议使用自己的设备而不是内嵌预览。
文档
事件
change
当应用状态发生变化时触发此事件。监听器会收到当前应用状态值之一作为参数。
memoryWarning iOS
当应用收到操作系统的内存警告时触发。
focus Android
当应用获得焦点时触发(用户正在与应用交互)。
blur Android
当用户不再与应用主动交互时触发。在用户下拉通知抽屉时非常有用。此时 AppState 不会变化,但 blur 事件会被触发。
方法
addEventListener()
tsx
static addEventListener(
type: AppStateEvent,
listener: (state: AppStateStatus) => void,
): NativeEventSubscription;
设置一个在 AppState 上发生指定事件类型时调用的函数。eventType 的有效值参见上方列出的事件。返回 EventSubscription。
属性
currentState
tsx
static currentState: AppStateStatus;