2014-09-13 42 views
3

由于某种原因,暂停事件在它应该时不会触发。Cordova:暂停事件没有触发

如果我按手机上的主页按钮,这是暂停事件应该被触发的地方,应该暂停音乐。但相反,它继续玩它。

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

为什么onPause在我离开应用程序时不能触发?

我有以下代码:

​​

回答

3

你在iOS上测试?我发现这是iOS上的“正常”的行为,同时也作为PhoneGap的文档points out

在暂停处理,通过Objective-C的去科尔多瓦API或本地 插件任何电话不工作,以及任何 交互式调用,例如alert或console.log()。在应用程序继续运行时,它们仅在 处处理,在下一次运行循环中。

因此,根据文档,关闭应用程序时永远不会看到alert('paused)

但是,我的观察是代码是在应用程序暂停时执行的,只有控制台打印被延迟,直到下一次应用程序重新启动。

如果您的PauseMusic()调用未执行,那么您应该发布更多代码并查看是否存在问题。

+0

它在Android上。我确实看到了iOS的“怪癖”。我认为它与此类似,但它不应该发生在Android中(根据文档)。但是,更多的人似乎有一个问题。请参阅:https://groups.google.com/forum/#!searchin/phonegap/pause/phonegap/nX-h3A4_Yn8/LrW91VfPJmMJ - 所以我认为这是一个错误。 – 2014-09-14 14:46:23

6

我想我有你完全相同的问题。我将Phonegap config.xml变量KeepRunning设置为false。我设置为true,现在它应该会得到暂停事件。以下是config.xml的线我谈论:

<preference name="KeepRunning" value="true"/> 

我想这是有道理的,如果应用程序没有那么运行,直到应用程序再次运行暂停事件代码不会得到运行。我猜KeepRunning的优先级高于收听暂停事件。得到一个适当的解释,为什么这个数值恰好处于较低的水平会很有趣。

+0

只是FYI KeepRunning仅适用于Android: https://cordova.apache.org/docs/en/5.1.1/guide_platforms_android_config.md.html#Android%20Configuration – 2015-06-16 06:34:08

+0

什么是KeepRunning的默认值? – 2018-01-18 13:37:07