Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

React Native: Is there a callback function for when your app is closed?

I have a setInterval that keeps running even when you close (not quit) the app. I would like to call a function when my app is closed or the device is put to sleep so that it clears the setInterval.

like image 354
sdfsdf Avatar asked Jul 30 '16 18:07

sdfsdf


2 Answers

AppState is your friend! Have a look at the documentation of AppState.

So in your component, where the setTimeout exists, just require AppState and add an event listener like this:

AppState.addEventListener('background', this.handlePutAppToBackground);
AppState.addEventListener('inactive', this.handlePutAppToBackground);

handlePutAppToBackground() would be now a method in your component, where you would call clearTimeout(...)

like image 133
itinance Avatar answered Oct 20 '22 01:10

itinance


itinance was close. The answer is actually to use

AppState.addEventListener('change', state => {
  if (state === 'active') {
    // do this
  } else if (state === 'background') {
    // do that
  } else if (state === 'inactive') {
    // do that other thing
  }
});
like image 5
sdfsdf Avatar answered Oct 20 '22 00:10

sdfsdf