【发布时间】:2015-04-27 17:25:57
【问题描述】:
是否有人有解决方法/建议让 Cordova 4.x 或 5.0.0 触发 Windows Phone 8.1 的“暂停”和“恢复”应用程序生命周期事件?
重现这个:
- 使用默认的 Tools for Apache Cordova 模板开始一个新的 VS2013 项目。
- 在 index.js 中的默认 onPause 和 onResume 函数末尾设置断点
- 使用面向 Windows Phone Universal 的模拟器运行
- 如果您没有看到 javascript 控制台,则需要退出并从 (myApp)\bld\Debug\platforms\windows 中的 CordovaApp silverlight VS 解决方案运行
- 点击窗口后退箭头
- 长按 Windows 后退箭头,选择您的空白应用
预期:当点击 windows 后退按钮或 windows 按钮时,应用程序应在断点处停止。同样,当应用程序恢复时,应用程序应该在断点处停止
实际结果:没有触发断点。
评论:我遇到了这个问题,因为我们有一些间隔计时器,这些计时器在应用程序启动(和 onResume)时设置,并在暂停时关闭。这些间隔定时器没有被关闭,表明 onPause 函数没有被执行。当然,这会导致不希望的“电池扁平化”,但更糟糕的是,如果存在诸如网络连接之类的待处理操作,则在应用程序离开前台时无法取消它们。随后的重新启动可能会或可能不会因此崩溃,并且一旦应用进入启动时崩溃模式,在删除并重新安装之前无法重新启动。
【问题讨论】:
-
你能分享一个更简单的应用程序重现吗?我已经用一个简单的空白 Cordova 应用程序尝试了这个,但我无法重现这个问题。感谢您使用我们的工具!
-
谢谢 Subhag —— 默认的 TACo 模板应用程序非常简单。一个空白的 Cordova 应用程序会在您的 onPause 和 onResume 断点处停止?注意:当我触发一个生命周期事件时,它会在 onPause 断点处停止,而不是仅仅按下 Windows 后退键。
标签: cordova windows-phone-8.1 visual-studio-cordova