我有一个从node.js webpack项目创建的Android应用程序。

当我在手机上安装我的应用程序时,我注意到它在手机进入休眠状态时也进入休眠状态。因此,例如,我有一个javascript计时器,该计时器停止调用:

pingTimer=setInterval(ping,pingInterval);

用于pingInterval。如何停止我的应用程序进入休眠状态?最终,我希望我的应用进入休眠状态,但目前最好的方法是让手机进入休眠状态。

更新

我按照此处描述的说明进行操作:

http://www.greenbot.com/article/2993199/android/how-to-turn-off-doze-mode-for-specific-apps-in-android-marshmallow.html

但没有运气。

最佳答案

最好的选择是WakeLock API

manifest file中为wakeLock添加权限

<uses-permission android:name="android.permission.WAKE_LOCK" />

那么您可以根据自己的修改添加以下内容,如MDN行为中所建议的那样
function forPingTimer(){
 var lock =  window.navigator.requestWakeLock('screen');
 //set timeout or until the timer expires
}

然后使用lock.unlock();函数释放该锁。



对于cordova应用程序,您还可以使用插件insomnia。在config文件中进行的更改如文档中所述,可以通过以下方式简单使用:
function forPingTimer(){
//as long as the app runs or set the timeout here or wrap it in a promise
//Simply calling window.plugins.insomnia.keepAwake() to keep awake
}
//window.plugins.insomnia.allowSleepAgain() to sleep again until the timer after the timer is fulfilled

关于javascript - 阻止我的应用进入休眠状态(Cordova/Android),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41107778/

10-09 04:00