在 React Native 中检测应用程序关闭(博览会)

问题描述 投票:0回答:1

我在 Expo 上有一个 React Native 移动应用程序,它在后台和前台都使用位置。 但我有一个问题,因为当应用程序关闭时(在 Android 和 iOS 上),它会继续将用户位置发送到服务器。

我需要一种方法来检测应用程序何时关闭(非后台)以执行 2 个操作:

  1. 停止位置更新
  2. 将数据库中的 userState 更改为离线

为了解决这个问题我尝试了多种解决方案:

  • React Native AppStates
  • 组件将卸载
  • 非官方库,如 EventLifeCycle Listeners 等。

有人可以救救我吗? :)

javascript react-native expo location background-fetch
1个回答
0
投票

您可以在定义BackgroundTask时将

true
值设置为
stopOnTerminate

只需仔细检查这仅适用于 Android,但是,据我记得,当应用程序被杀死时,后台任务永远不会在 iOS 上调用,所以,这对你来说应该足够了。

示例:

  BackgroundFetch.registerTaskAsync(TASK_NAME, {
    minimumInterval: 24 * 60 * 60,
    stopOnTerminate: true, // android only,
    startOnBoot: false, // android only
  });
© www.soinside.com 2019 - 2024. All rights reserved.