React Native:您的应用关闭时是否有回调函数?

Rea*_*eal 8 javascript react-native

我有一个setInterval,即使你关闭(不退出)应用程序也会继续运行.当我的应用程序关闭或设备进入休眠状态时,我想调用一个函数,以便清除setInterval.

iti*_*nce 6

AppState是你的朋友!看看AppState文档.

所以在你的组件中,setTimeout存在,只需要AppState并添加一个这样的事件监听器:

AppState.addEventListener('background', this.handlePutAppToBackground);
AppState.addEventListener('inactive', this.handlePutAppToBackground);
Run Code Online (Sandbox Code Playgroud)

handlePutAppToBackground()现在是组件中的一个方法,您可以在其中调用clearTimeout(...)


Rea*_*eal 5

itinance很接近。答案实际上是使用

AppState.addEventListener('change', state => {
  if (state === 'active') {
    // do this
  } else if (state === 'background') {
    // do that
  } else if (state === 'inactive') {
    // do that other thing
  }
});
Run Code Online (Sandbox Code Playgroud)

  • 当您关闭应用程序时,仅当您最小化应用程序或更改应用程序时,才会触发此操作 (3认同)
  • 此功能仅适用于 iOS,不适用于 Android (2认同)