我有测试用户说我的应用程序在他们的Android设备上占用了太多的电池寿命。我正在测试平板电脑(nexus 7)和设置>应用信息>权限我看到prevent tablet from sleeping
。
这是否意味着我的应用 让设备无法入睡或只是它可以?
无论如何我需要了解如何确保我的应用不进行任何后台处理。我该怎么测试呢?
注意:
我正在使用navigator.geolocation.watchPosition
而我担心它仍然在后台运行,占用的资源超过了所需资源。
答案 0 :(得分:0)
问题很可能是navigator.geolocation.watchPosition
。
当应用暂停并恢复时,您需要使用设备事件来处理停止和启动此事件。
这是一个快速的sudo示例:
为观察者var watcher;
为pause
和resume
添加听众:
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);
}