跳到主要内容

AppState

AppState 可以告诉你应用程序是在前台还是后台,并在状态改变时通知你。

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

应用状态

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

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

基本用法

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

这个例子只会显示“当前状态是:active”,因为应用程序只在 active 状态下对用户可见,并且 null 状态只会持续片刻。如果你想尝试代码,我们建议使用你自己的设备而不是嵌入式预览。


参考

事件

change

当应用程序状态改变时会收到此事件。监听器会收到 当前的应用程序状态值之一。

memoryWarning

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

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;