setInter不能按预期使用phonegap工作

时间:2015-08-11 20:19:26

标签: javascript jquery geolocation setinterval phonegap-build

我已经设置了一个函数,它使用setInterval()每X分钟检查一次用户的位置,这个函数大部分都按预期工作。然而,在电话处于非活动状态一段时间后,间隔似乎延长,即如果设置为5分钟,则可能需要长达一个小时才能再次检查电话是否已处于非活动状态一段时间。这是为了保持24/7不变,因此电话处于非活动状态将很常见。

这是一个已知问题,还是我应该做些什么来防止这种情况?

var onDeviceReady = function(){
   var preCheckGPSInterval = setInterval(function(){
       var watchID = navigator.geolocation.watchPosition(
           function(position){
               if(position.coords.accuracy < 100){
                   navigator.geolocation.clearWatch(watchID);
                   //code to execute
               }
           },
           function(error){
               console.log("error");
           },
           {enableHighAccuracy: true}
       );
   }, 300000);
}

document.addEventListener("deviceready", onDeviceReady, false);

1 个答案:

答案 0 :(得分:0)

  

这是一个已知问题,还是我应该做些什么来防止这种情况?

@Marty,
这不是问题。这是它应该工作的方式。如果应用程序不在前台,应用程序将从内存中清除资源,并可能存储在交换空间中。

根据建议,您需要强制您的应用在后台运行。这篇文章会有所帮助。 7 things you should know about Android Manifest xml file