跳到主要内容
版本:Next

AppState

AppState 可以告诉您应用是在前台还是后台,并在状态变化时通知您。

在处理推送通知时,AppState 常用于确定意图和适当的行为。

应用状态

  • active - 应用正在前台运行
  • background - 应用正在后台运行。用户要么:
    • 在另一个应用中
    • 在主屏幕上
    • [Android] 在另一个 Activity 上(即使它是由您的应用启动的)
  • [iOS] inactive - 这是一个发生在前台和后台之间过渡期间的状态,以及在不活动期间,例如进入多任务视图、打开通知中心或有来电时。

更多信息,请参阅 Apple 的文档

基本用法

要查看当前状态,您可以检查 AppState.currentState,它将保持最新。

信息

如果您使用的是旧架构,currentState 在启动时将为 null,直到从原生端异步检索到它。

此示例似乎只会显示 "Current state is: active",因为应用仅在 active 状态下对用户可见。如果您想实验代码,我们建议使用您自己的设备而不是嵌入式预览。


参考

事件

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;