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