Cordova Windows Phone 8.1 应用程序生命周期事件不触发?

标签 cordova windows-phone-8.1 visual-studio-cordova

是否有人有解决方法/建议让 Cordova 4.x 或 5.0.0 触发 Windows Phone 8.1 的“暂停”和“恢复”应用程序生命周期事件?

要重现此内容:

  • 使用默认的 Apache Cordova 工具模板启动一个新的 VS2013 项目。
  • 在index.js中默认的onPause和onResume函数末尾设置断点
  • 使用面向 Windows Phone Universal 的模拟器运行
    • 如果您没有看到 JavaScript 控制台,则需要退出并从 (myApp)\bld\Debug\platforms\windows 中找到的 CordovaApp silverlight VS 解决方案运行
  • 点击窗口后退箭头
  • 长按 Windows 后退箭头,选择您的空白应用

预期:当点击 Windows 后退按钮或 Windows 按钮时,应用程序应在断点处停止。同样,当应用程序恢复时,应用程序应该在断点处停止

实际结果:两个断点都没有被触发。

评论:我遇到这个问题是因为我们有一些间隔计时器,这些计时器是在应用程序启动(以及 onResume)时设置的,并在 Pause 时关闭。这些间隔计时器没有被关闭,表明 onPause 函数没有被执行。当然,这会导致不良的“电池电量耗尽”,但更糟糕的是,如果存在诸如网络连接之类的待处理操作,则当应用程序离开前台时,它们无法取消。随后的重新启动可能会或可能不会崩溃,一旦应用程序进入启动时崩溃模式,它就无法重新启动,直到删除并重新安装为止。

最佳答案

当应用程序正在调试时,Windows 不会暂停它。此行为记录在:http://blogs.msdn.com/b/mspfe/archive/2013/06/17/suspend-and-resume-in-winrt.aspx

如果所有线程都被卡住,调试器一旦挂起将无法与应用程序交互。正如您所提到的,您可以触发生命周期事件来模拟挂起/恢复。希望这会有所帮助,谢谢!

关于Cordova Windows Phone 8.1 应用程序生命周期事件不触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29902242/

相关文章:

visual-studio-cordova - iOS 设备上的 VS TACO 错误 "Cannot find the app installed on the device"

android - Cordova 构建失败

ios - 将 UiTextField 中的第一个字母设为小写(Phonegap for iOS)

c# - WP8.1 功能中缺少 ID_CAP_IDENTIY_DEVICE

c# - ListBox 不显示来自数据库的信息

visual-studio - 如何使用 visual studio 2013 社区创建 ionic 应用程序?

javascript - 如何使用远程脚本正确加载 Cordova 和 Angularjs 混合应用程序

用于 Cordova 的 Java SIP 插件或用于音频和视频流的 Phonegap

sqlite - PhoneGap,SQLite和全文本搜索

c# - 当 DataTemplate 为 Button 时,ListBox 项返回字符串