Cordova - 如何检测应用程序不再被积极使用 Android
Cordova - how to detect the app is not actively used anymore Android
好的,所以我的应用程序是一个 flashlight/torch 应用程序,可以在此处找到:
https://github.com/Skelware/Fancy-Flashlight and it uses a Cordova plugin found here: https://github.com/Skelware/Cordova-Flashlight
目前我只关心Android。简要解释一下这样的应用程序在 Android 上的工作方式:应用程序必须请求访问相机并且这是在后台完成的,加载相机需要一段时间才能加载(和卸载)应该尽可能少发生。当一个应用可以访问相机时,其他应用不能请求访问。
当我的应用程序启动时,它会加载相机并执行它需要执行的操作。但是当用户切换到不同的应用程序或关闭我的应用程序时,相机仍然注册到我的应用程序导致所有其他应用程序无法使用相机。
虽然我更愿意在 JavaScript 端处理这个问题,但在插件中本地处理也可以。
Window的unload事件似乎在退出(即完全退出)应用程序时触发,但没有足够的时间释放相机。
Cordova 版本是 4.0,Android 版本是 4.4,尽管我怀疑这是否重要。
我该怎么办?
您遇到的问题是应用程序在进入后台模式(用户按下主页按钮等)时进入睡眠状态。这可以通过调用
Cordova background plugin 来防止
cordova.plugins.backgroundMode.enable();
获取相机时可以调用,释放相机时可以调用对应的相机
cordova.plugins.backgroundMode.disable();
这样你就不会在不必要的时候阻止睡眠,因此你可以保护一些电池。
然后,您只需绑定暂停事件
document.addEventListener("pause", function() {
// Here call your release function and in the release function, you can call the disable for background mode
}, false);
好的,所以我的应用程序是一个 flashlight/torch 应用程序,可以在此处找到: https://github.com/Skelware/Fancy-Flashlight and it uses a Cordova plugin found here: https://github.com/Skelware/Cordova-Flashlight
目前我只关心Android。简要解释一下这样的应用程序在 Android 上的工作方式:应用程序必须请求访问相机并且这是在后台完成的,加载相机需要一段时间才能加载(和卸载)应该尽可能少发生。当一个应用可以访问相机时,其他应用不能请求访问。
当我的应用程序启动时,它会加载相机并执行它需要执行的操作。但是当用户切换到不同的应用程序或关闭我的应用程序时,相机仍然注册到我的应用程序导致所有其他应用程序无法使用相机。
虽然我更愿意在 JavaScript 端处理这个问题,但在插件中本地处理也可以。
Window的unload事件似乎在退出(即完全退出)应用程序时触发,但没有足够的时间释放相机。
Cordova 版本是 4.0,Android 版本是 4.4,尽管我怀疑这是否重要。
我该怎么办?
您遇到的问题是应用程序在进入后台模式(用户按下主页按钮等)时进入睡眠状态。这可以通过调用
Cordova background plugin 来防止cordova.plugins.backgroundMode.enable();
获取相机时可以调用,释放相机时可以调用对应的相机
cordova.plugins.backgroundMode.disable();
这样你就不会在不必要的时候阻止睡眠,因此你可以保护一些电池。
然后,您只需绑定暂停事件
document.addEventListener("pause", function() {
// Here call your release function and in the release function, you can call the disable for background mode
}, false);