由于某种原因,暂停事件不应该触发。
如果我按下手机上的主页按钮,则应该触发暂停事件,这应暂停音乐。但相反,它继续播放它。
但是当我再次打开我的应用程序时,它会突然暂停然后恢复。因此,当我返回应用程序时,它会触发这两个事件。
为什么我离开应用时onPause没有触发?
我有以下代码:
function onLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
document.addEventListener("resume", onResume, false);
document.addEventListener("pause", onPause, false);
}
function onPause() {
PauseMusic();
alert('paused');
}
function onResume() {
ResumeMusic();
alert('resumed');
}
答案 0 :(得分:8)
我想我遇到了同样的问题。我已将Phonegap config.xml变量KeepRunning设置为false。我设置为true,现在它应该在它应该的时候获得暂停事件。这是我正在讨论的config.xml行:
<preference name="KeepRunning" value="true"/>
我认为如果应用程序没有运行,那么暂停事件代码将无法运行,直到应用程序再次运行才有意义。我猜KeepRunning的优先级高于监听暂停事件。获得一个正确的解释,为什么这是完全在较低的水平将是有趣的。
答案 1 :(得分:3)
你在iOS上测试吗?我发现这是&#34;正常&#34; iOS上的行为,以及Phonegap文档points out:
在暂停处理程序中,对Cordova API或本机的任何调用 通过Objective-C的插件不起作用 交互式调用,例如警报或console.log()。它们只是 在应用程序恢复时处理,在下一个运行循环中。
因此,根据该文档,您在关闭应用时永远不会看到alert('paused)
。
但是,我的观察是代码是在应用程序暂停时执行的,只有控制台打印才会延迟,直到下一个应用程序重新启动。
如果您的PauseMusic()
来电没有被执行,您应该发布更多代码,看看是否存在问题。