uniapp app版本:
最近在弄一個安卓APP,需要每隔幾秒鍾上報一次GPS位置,但發現當手機休眠后(屏幕熄滅后)APP不再運行,因此也不能上報GPS位置。
借助安卓的WakeLock機制,我們可以實現讓APP在后台運行。實現代碼如下:
```
var g_wakelock = null;
//允許程序后台運行,以持續獲取GPS位置
function wakeLock() {
//Android
var main = plus.android.runtimeMainActivity();
var Context = plus.android.importClass("android.content.Context");
var PowerManager = plus.android.importClass("android.os.PowerManager");
var pm = main.getSystemService(Context.POWER_SERVICE);
g_wakelock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "ANY_NAME");
g_wakelock.acquire();
}
//結束程序后台運行
function releaseWakeLock () {
if(g_wakelock != null && g_wakelock.isHeld()) {
g_wakelock.release();
g_wakelock = null;
}
```
在需要允許后台運行的時候調用wakeLock(),在希望停止的時候調用releaseWakeLock()
原文地址:https://ask.dcloud.net.cn/article/1273
[https://ask.dcloud.net.cn/article/1273](https://ask.dcloud.net.cn/article/1273)