跳到主要內容

AppState

AppState 可以告訴您應用程式是在前景還是在背景執行,並在狀態改變時通知您。

AppState 經常被用於在處理推播通知時,判斷意圖和適當的行為。

應用程式狀態

  • active - 應用程式在前台執行
  • background - 應用程式在背景執行。使用者可能
    • 在另一個應用程式中
    • 在主畫面
    • [Android] 在另一個 Activity 中(即使它是由您的應用程式啟動的)
  • [iOS] inactive - 這是一個在前景和背景之間轉換時,以及在非活動期間(例如進入多工處理視窗、打開通知中心或來電時)發生的狀態。

更多資訊,請參閱 Apple 的文件

基本用法

若要查看目前狀態,您可以查看 AppState.currentState,它會保持更新。然而,currentState 在啟動時會是 null,因為 AppState 會透過 bridge 取得它。

這個範例只會顯示 "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;