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

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

要回复文章请先登录注册

昱凯

昱凯

回复 k***@hotmail.com :
查了好多方法。好像只有用原生SDK才可以实现。这个需求已经砍掉了~~
2019-05-27 17:29
k***@hotmail.com

k***@hotmail.com (作者)

回复 昱凯 :
没想到两年前发的贴子到现在还有存在的价值,哈哈。你用的js定时器锁屏是不是阻止了当前js进程的运行?
2019-05-23 09:51
St23eh1i

St23eh1i

回复 昱凯 :
我也遇到和你一样的问题,也是后台运行定时器自动获取定位,隔了30多分钟就断掉了
2019-05-21 10:02
昱凯

昱凯

回复 梅宝 :
使用这个方法后,js定时器锁屏后还是会失效.请问锁屏后如何定时发送api请求?
2019-04-14 15:11
梅宝

梅宝

回复 wufan :
那个参数是Tag标签,随你写
2019-04-10 11:23
梅宝

梅宝

补充一下说明:newWakeLock(int flags, String tag);

flags参数说明:
    PARTIAL_WAKE_LOCK :保持CPU 运转,屏幕和键盘灯是关闭的。

    SCREEN_DIM_WAKE_LOCK :保持CPU 运转,允许保持屏幕显示但有可能是灰的,关闭键盘灯

    SCREEN_BRIGHT_WAKE_LOCK :保持CPU 运转,保持屏幕高亮显示,关闭键盘灯

    FULL_WAKE_LOCK :保持CPU 运转,保持屏幕高亮显示,键盘灯也保持亮度

同时适用做小说阅读器的,白天可以用SCREEN_BRIGHT_WAKE_LOCK保持屏幕常亮,晚上可以用SCREEN_DIM_WAKE_LOCK 保持屏幕常亮但亮度低
正文中提到的是用PARTIAL_WAKE_LOCK来保持后台运行
2019-04-10 11:22
wanghui

wanghui

关注,希望有例子,我在uni-app上尝试了下,没成功
2019-02-25 15:00
wufan

wufan

ANY_NAME具体写什么
2019-02-19 13:30
MR不靠谱

MR不靠谱

mark
2018-11-08 11:32
苛学加

苛学加

mark
2018-10-30 20:32