我如何使用 React Native 在后台捕获加速度计

问题描述

我正在使用 react native expo CLI 开发一个姿势检查应用程序。所以我试图检查用户在使用我的应用程序时的姿势,以便他们可以使用加速度计保持良好的姿势我可以检查,但现在它只在他们使用我的应用程序时有效,但我希望它甚至可以工作当他们关闭我的应用程序时。我知道我必须为它使用后台获取和任务管理器,我尝试过,但我不明白它是如何工作的。

import * as BackgroundFetch from "expo-background-fetch";
import * as TaskManager from "expo-task-manager";

let setStateFn = () => {
  console.log("State not yet initialized");
};function myTask() {
  try {
    // fetch data here...
    const backendData = "Simulated fetch " + Math.random();
    console.log("myTask() ",backendData);
    setStateFn(backendData);
    return backendData
      ? BackgroundFetch.Result.NewData
      : BackgroundFetch.Result.NoData;
  } catch (err) {
    return BackgroundFetch.Result.Failed;
  }
}async function initBackgroundFetch(taskName,taskFn,interval = 60 * 15) {
  try {
    if (!TaskManager.istaskdefined(taskName)) {
      TaskManager.defineTask(taskName,taskFn);
    }
    const options = {
      minimumInterval: interval // in seconds
    };
  await BackgroundFetch.registerTaskAsync(taskName,options);
  } catch (err) {
    console.log("registerTaskAsync() Failed:",err);
  }
}initBackgroundFetch('myTaskName',myTask,5);// Put the next lines inside the React component
const [state,setState] = useState(null);
setStateFn = setState;

我正在使用这种方法进行后台提取

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)