Cordova验证应用程序在未激活时处于休眠状态

Cordova验证应用程序在未激活时处于休眠状态,cordova,ionic-framework,Cordova,Ionic Framework,我让测试用户说我的应用程序在他们的android设备上占用了太多的电池寿命。我正在平板电脑(nexus 7)上测试,在设置>应用程序信息>权限中,我看到阻止平板电脑睡眠 那么,这是否意味着我的应用程序阻止了设备睡眠,还是说它可以 不管怎样,我需要找出如何确保我的应用程序没有进行任何后台处理。我如何测试这个 注: 我使用的是navigator.geolocation.watchPosition,我担心它仍然在后台运行,占用的资源超过了需要的资源。最可能的问题是navigator.geolocati

我让测试用户说我的应用程序在他们的android设备上占用了太多的电池寿命。我正在平板电脑(nexus 7)上测试,在设置>应用程序信息>权限中,我看到
阻止平板电脑睡眠

那么,这是否意味着我的应用程序阻止了设备睡眠,还是说它可以

不管怎样,我需要找出如何确保我的应用程序没有进行任何后台处理。我如何测试这个

注:
我使用的是
navigator.geolocation.watchPosition
,我担心它仍然在后台运行,占用的资源超过了需要的资源。

最可能的问题是
navigator.geolocation.watchPosition

当应用程序暂停和恢复时,您需要使用设备事件来处理停止和启动

下面是一个快速的sudo示例:

为您的观察者定义一个全局变量
var观察者

暂停
恢复
添加侦听器:

document.addEventListener("pause", onPause, false);
document.addEventListener("resume", onResume, false);
启动观察程序时,将其分配给全局:

watcher = navigator.geolocation.watchPosition(onSuccess, onError, options);
创建
onPause
并清除观察者:

function onPause() {
    navigator.geolocation.clearWatch(watcher);
}
如果希望在应用程序恢复时再次启动,请创建
onResume
,然后再次启动:

function onResume() {
    watcher = navigator.geolocation.watchPosition(onSuccess, onError, options);
}

很好的假设,不幸的是我已经这么做了。我确实注意到手表有时会每秒触发一次,所以我按照您的回答所做的是将手表取出并移动到手动进近,但间隔30秒,仍然在暂停/恢复时停止/启动。