跳到主要内容

AppState

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

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

App States

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

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

Basic Usage

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

这个示例只会显示“Current state is: 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;