k***@hotmail.com
k***@hotmail.com
  • 发布:2017-03-29 09:31
  • 更新:2024-03-25 16:57
  • 阅读:46032

移动app如何在手机关屏后仍能正常运行、接收信息

分类:Native.js

最近在弄一个安卓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()

20 关注 分享
3***@qq.com bxdsam 拜仁已伤 MR不靠谱 李致荣 ai666 言会咸 9***@qq.com 5***@qq.com flyer456 映月辉煌 老哥教教我 a***@gezhong.vip aiyide d***@163.com 百倍 左眼皮跳跳 x***@163.com 刘先生啊 A1

要回复文章请先登录注册

l***@163.com

l***@163.com

回复 St23eh1i :
您好 请问解决了么
2019-10-10 10:50
l***@163.com

l***@163.com

回复 代码游侠 :
您好 请问uniapp能保持后台运行么?
2019-10-10 10:49
l***@163.com

l***@163.com

回复 代码游侠 :
您好 请问uniapp能保持后台运行么
2019-10-10 10:48
6***@qq.com

6***@qq.com

回复 St23eh1i :
您好。能稍微说详细点么? 是关闭高耗电提醒是吗?开启自动运行是什么意思?指代上面的代码吗?
2019-09-04 09:14
1***@qq.com

1***@qq.com

谢谢
2019-09-04 06:49
St23eh1i

St23eh1i

回复 St23eh1i :
没事了,我把高耗电关了,开启自动运行就好了
2019-09-03 17:54
St23eh1i

St23eh1i

华为手机息屏此代码无效
2019-09-03 17:37
cbj44125

cbj44125

学习了
2019-08-15 16:49
代码游侠

代码游侠

关注一波, 我现在也有差不多的需求就是:骑手端要上报GPS位置,客户端要在地图实时看到骑手位置。但是如果骑手端锁屏,那该怎么办?!网上看的都是要app守护,后台任务上报GPS的。但是就不知道uni-app能做到吗?本人前端。
2019-05-30 15:58
gaus

gaus

回复 k***@hotmail.com :
请教,这句话是说当前进程抛出同步异常吗? 能否举个例子,谢谢!
2019-05-27 18:53