科尔多瓦 - 如何检测应用程序不再被积极使用Android

Cordova - how to detect the app is not actively used anymore Android

本文关键字:不再 应用程序 Android 检测 何检测      更新时间:2023-09-26

好的,所以我的应用程序是一个手电筒/手电筒应用程序,在这里找到:https://github.com/Skelware/Fancy-Flashlight,它使用在这里找到的Cordova插件:https://github.com/Skelware/Cordova-Flashlight

目前我只关心Android。简要解释一下这样的应用程序在 Android 上的工作方式:应用程序必须请求访问相机,这是在后台完成的,加载相机需要一段时间,因此加载(和卸载)应尽可能少地发生。虽然应用可以访问相机,但其他任何应用都无法请求访问权限。

当我的应用启动时,它会加载相机并执行它需要执行的操作。但是,当用户切换到其他应用或关闭我的应用时,相机仍会注册到我的应用,从而导致所有其他应用无法使用相机。

虽然我更愿意在 JavaScript 端处理这个问题,但在插件中原生处理这个问题也是可以的。

Window 的卸载事件似乎在退出(即完全退出)应用时触发,但它没有足够的时间来释放相机。

Cordova版本是4.0,Android版本是4.4,尽管我怀疑这是否重要。

我该怎么办?

您的问题是应用程序在进入后台模式(用户按下主页按钮等)时进入睡眠状态。这可以通过调用 Cordova 后台插件来防止

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);