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

移动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

要回复文章请先登录注册

1***@qq.com

1***@qq.com

请问这些代码是写在main里面吗?
2022-09-01 10:18
1***@qq.com

1***@qq.com

这个程序后台写在代码的哪个地方
2022-08-02 17:40
随意啊

随意啊

回复 代码游侠 :
您好, 请问后来这个功能怎么实现的呢
2022-05-18 18:29
随意啊

随意啊

回复 l***@163.com :
请问, 后来你解决了吗
2022-05-18 18:27
飞翔的腿毛

飞翔的腿毛

回复 2***@qq.com :
试过华为的鸿蒙系统吗,我和你一样的做法但是华为的鸿蒙系统还是会掉线
2022-04-26 09:27
2***@qq.com

2***@qq.com

回复 1***@qq.com :
没有,不过可以手动设置,权限里设置允许后台运行、高耗电两个权限就能后台运行了
2022-03-11 17:01
1***@qq.com

1***@qq.com

回复 2***@qq.com :
请问有方案吗
2022-02-18 15:32
1***@qq.com

1***@qq.com

回复 f***@126.com :
可以了 码?
2022-02-18 15:31
f***@126.com

f***@126.com

无用。 真机调试可以 ,断开就不行了
2022-01-08 21:46
makeit

makeit

回复 z***@163.com :
同问
2021-12-16 10:34