2017-10-10 68 views
1

是否有可能知道一個RN應用程序是否已經背景?任何回調或觸發器?如何知道反應本機應用程序是否轉到後臺?

如果我聽componentDidUnmount或我在屏幕componentWillUnmount,它只會如果我去前/後到另一個屏幕

感謝

+0

的可能的複製[本地做出反應?有沒有當你的應用程序被關閉回調函數(https://stackoverflow.com/questions/38677137/react-native-is-there-a-callback功能全換時,你的應用程序內,是封閉的) – bennygenel

回答

3

你可以聽appState觸發的事件。 從https://facebook.github.io/react-native/docs/appstate.html

import React, {Component} from 'react' 
import {AppState, Text} from 'react-native' 

class AppStateExample extends Component { 

    state = { 
    appState: AppState.currentState 
    } 

    componentDidMount() { 
    AppState.addEventListener('change', this._handleAppStateChange); 
    } 

    componentWillUnmount() { 
    AppState.removeEventListener('change', this._handleAppStateChange); 
    } 

    _handleAppStateChange = (nextAppState) => { 
    if (this.state.appState.match(/inactive|background/) && nextAppState === 'active') { 
     console.log('App has come to the foreground!') 
    } 
    this.setState({appState: nextAppState}); 
    } 

    render() { 
    return (
     <Text>Current state is: {this.state.appState}</Text> 
    ); 
    } 

} 
3

可以使用AppState

應用美國

  • active - 應用程序在運行 - 應用程序在前臺
  • background運行的背景。用戶無論是在另一個應用程序或主屏幕
  • inactive上 - 這是前景&背景之間轉變時出現的狀態,並且在非活動期間,如在進入多任務視圖或呼入
  • 的事件
相關問題