【关于程序休眠】
小程序环境下隐藏回退主界面程序挂起
类型 | 描述 |
---|---|
安卓 | 1分钟不重新进入就休眠 不会继续发请求 |
苹果 | 只要退回主界面 就不会继续发请求 |
App环境下程序onhide程序挂起
类型 | 描述 |
---|---|
安卓 | 只要进程没被干掉,退回主界面或者熄屏,程序都会继续请求 |
苹果 | 屏幕亮起的状态下 3分钟没登录App 所有操作都会被挂起 屏幕熄屏 30秒后所有行为都将挂起 |
APP下如何让手机关屏后仍能正常运行、接收信息
plus.device.setWakelock(true);
Native 实现手机关屏仍能接收信息(只适用于安卓),适合于短时间内需要频繁请求服务器,如上报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;
}
}
newWakeLock flags参数说明
参数 | 说明 |
---|---|
PARTIAL_WAKE_LOCK | 保持CPU 运转,屏幕和键盘灯是关闭的 |
SCREEN_DIM_WAKE_LOCK | 保持CPU 运转,允许保持屏幕显示但有可能是灰的,关闭键盘灯 |
SCREEN_BRIGHT_WAKE_LOCK | 保持CPU 运转,保持屏幕高亮显示,关闭键盘灯 |
FULL_WAKE_LOCK | 保持CPU 运转,保持屏幕高亮显示,键盘灯也保持亮度 |
部分机型做了深度优化,上述代码无效,需要额外处理,指引用户指向app的应用信息,长按APP图标可以获取。
然后在高级里面电池优化选择【不优化】、或者是省电策略选择【不限制】