Skip to main content
Use this API to listen for events when the Mini Program transitions from foreground to background. The callback triggers at the same time as the onHide() lifecycle method in the app registration.

Parameters

PropertyTypeRequiredDescription
callbackFunctionYesHandler executed when the app moves to background

Code Example

Page({
  onLoad() {
    // Register listener when page loads
    my.onAppHide(this.onAppHideHandler);
  },

  onUnload() {
    // Clean up listener when page unloads
    my.offAppHide(this.onAppHideHandler);
  },

  onAppHideHandler() {
    console.log('App moved to background');
    // Save state, pause operations, etc.
    this.saveCurrentState();
  },

  saveCurrentState() {
    my.setStorage({
      key: 'appState',
      data: this.data
    });
  }
});

AXML with Button

<button size="default" onTap="removeListener" type="primary">
  Stop listening for background events
</button>
Page({
  onLoad() {
    my.onAppHide(this.onAppHideHandler);
  },

  onAppHideHandler() {
    console.log('App moved to background');
  },

  removeListener() {
    my.offAppHide(this.onAppHideHandler);
    my.showToast({ content: 'Listener removed' });
  }
});

Use Cases

Page({
  data: {
    formData: {}
  },

  onLoad() {
    my.onAppHide(() => {
      // Save form data when app goes to background
      my.setStorage({
        key: 'savedFormData',
        data: this.data.formData
      });
    });
  }
});
Page({
  onLoad() {
    my.onAppHide(() => {
      // Pause video when app goes to background
      const videoContext = my.createVideoContext('myVideo');
      videoContext.pause();
    });
  }
});
Page({
  data: {
    intervalId: null
  },

  onLoad() {
    this.data.intervalId = setInterval(() => {
      // Periodic task
    }, 1000);

    my.onAppHide(() => {
      clearInterval(this.data.intervalId);
    });

    my.onAppShow(() => {
      this.data.intervalId = setInterval(() => {
        // Resume periodic task
      }, 1000);
    });
  }
});
Always remove event listeners when they’re no longer needed using my.offAppHide() to prevent memory leaks.

my.offAppHide

Stop listening for background events

my.onAppShow

Listen for foreground events