跳至主要内容

AppState

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

AppState 经常用于确定处理推送通知时的意图和正确行为。

应用状态

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

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

基本用法

要查看当前状态,您可以检查 AppState.currentState,它将保持最新。但是,在启动时 currentState 将为 null,而 AppState 会通过桥接获取它。

此示例将始终显示“当前状态为:active”,因为只有在 active 状态下,用户才能看到应用,并且 null 状态只会持续片刻。如果您想尝试此代码,我们建议您使用自己的设备而不是嵌入式预览。


参考

事件

change

当应用状态发生变化时,会收到此事件。侦听器将使用 当前应用状态值之一 被调用。

memoryWarning

此事件用于在需要发出内存警告或释放内存时使用。

focus
Android

当应用获得焦点(用户正在与应用交互)时接收。

blur
Android

当用户没有积极地与应用交互时接收。在用户下拉 通知抽屉 的情况下很有用。AppState 不会改变,但 blur 事件将被触发。

方法

addEventListener()

static addEventListener(
type: AppStateEvent,
listener: (state: AppStateStatus) => void,
): NativeEventSubscription;

设置一个函数,每当在 AppState 上发生指定的事件类型时,就会调用该函数。eventType 的有效值为 上面列出的值。返回 EventSubscription

属性

currentState

static currentState: AppStateStatus;