0

我正在尝试使用本机反应在 Android 上构建计步器应用程序。目前,我正在使用 expo-sensors(在一个裸项目中)和 react-native-background-fetch 来获取运动数据。

我正在尝试watchStepCount使用无头 JS 在后台获取功能,以便用户运动数据不断更新。我意识到,每当我为用户订阅watchStepCount计数时,它都会添加一个新订阅,而不是在新的后台获取运行时终止旧订阅。我一直在努力寻找一种方法来删除在指定时间间隔内运行的新后台获取中的旧订阅,以便我可以以有组织的方式获取运动数据。

现在,代码如下所示(index.js):

let MyHeadlessTask = BackgroundFetch.configure({
  minimumFetchInterval: 1,
  forceAlarmManager: true,
  stopOnTerminate: false,
  enableHeadless: true,
  startOnBoot: true,
}, async (taskId) => {

  console.log('[BackgroundFetch HeadlessTask] start: ', taskId);

  let _subscription = Pedometer.watchStepCount(result => {
    console.log(result)
  })
  
  // This is the unsubscribing part, but if I run it here, it will remove the subscription immediately
  // _subscription && _subscription.remove();
  // _subscription = null;


  BackgroundFetch.finish(taskId);
})

BackgroundFetch.registerHeadlessTask(MyHeadlessTask);
AppRegistry.registerComponent('main', () => App);

谁能帮我解决这个问题?如果您能帮我解决这个问题,我将不胜感激。

4

0 回答 0