科尔多瓦:暂停赛事没有开火

时间:2014-09-13 09:55:02

标签: javascript android cordova

由于某种原因,暂停事件不应该触发。

如果我按下手机上的主页按钮,则应该触发暂停事件,这应暂停音乐。但相反,它继续播放它。

但是当我再次打开我的应用程序时,它会突然暂停然后恢复。因此,当我返回应用程序时,它会触发这两个事件。

为什么我离开应用时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');
}

2 个答案:

答案 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()来电没有被执行,您应该发布更多代码,看看是否存在问题。