反应本机后台作业调度程序

时间:2017-12-27 11:24:39

标签: android react-native

我需要为Background job schedule获得解决方案。我的目的是每隔15分钟将latitudelongitude发送到我的后端。实现此功能的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

几个月前我确切地说过了,我用2种方法结束了。

虽然我的应用程序需要主动跟踪并在有新的latlong对象进入后端时将latlong对象发送到我的后端,但您可以查找的最佳选项之一是HeadlessJS,需要一些本机编码。

我的解决方案

  

所有Javascript执行都在后台线程上进行

将您的业务逻辑与UI线程分开,并将它们存储在redux中。只要应用程序处于活动状态,就可以每n分钟发送一次动作。确保在“功能”面板(适用于iOS)中打开背景模式。

我尝试过的其他选项

BackgroundTimer允许您每n分钟执行一次特定的代码段。例如,

export const watchGPSPositionsAtInterval = function(
  dispatchNewPositionFunction,
  dispatch
) {
  let intervalId = BackgroundTimer.setInterval(() => {
    navigator.geolocation.getCurrentPosition(
      pos => {
        if (pos <= MIN_ACCURACY) {
          dispatchNewPositionFunction(pos, dispatch);
        }
      },
      error => {
        console.log(error);
      },
      {
        enableHighAccuracy: true,
        timeout,
        maximumAge
      }
    );
  }, TIME_INTERVAL);
  return intervalId;
};