1

目前的情况是这样的:

  1. 用户打开我的应用
  2. 后台音频代理开始播放
  3. 用户返回开始屏幕
  4. 音频继续从后台音频代理播放
  5. 用户从“任务栏”(右上角的关闭按钮)杀死应用程序
  6. 后台音频代理继续播放。

我需要实现以下目标:

  • 当用户终止应用程序时关闭音频后台代理(我知道我可以在 backgroundaudioplayer 上使用 close 方法,但我需要在应用程序被终止/退出时调用它)。

问题:

  • 除了:当用户真正退出/杀死应用程序时,还有什么事件:Application_Deactivated / Application_Closing?
  • 如果没有上面提到的事件 - 我可以从 Application_Deactivated / Application_Closing 告诉用户何时真正退出/杀死应用程序?

谢谢

4

2 回答 2

1

无法检测应用程序何时被任务切换器或系统关闭。通常应用程序会一直被删除,直到它们被重新激活或被杀死。Application_Closing 您必须完成和 Application_Deactivated事件中的所有清理工作。

这有一个简单的原因:当应用程序位于后台时,它会被冻结并且无法执行代码。每当用户或系统杀死它(例如为了获得更多内存)应用程序及其所有数据都会完全从内存中清除。没有通知您的应用程序,也没有给它获得性能的机会(这会适得其反)。

Application_Deactivated因此,当用户点击开始按钮或启动另一个应用程序或Application_Closing用户通过后退按钮关闭应用程序时,您就有机会使用该事件。

如果您需要有关Windows Phone 8 应用程序生命周期的更多信息,请阅读此内容。

除此之外,用户会期望在他关闭应用程序后背景音频仍在运行。例如,当我关闭播客应用程序时,也应该播放播客。你在说什么类型的音频?也许我们可以找到一个聪明的解决方案......

于 2014-05-15T08:26:31.747 回答
0

您可以响应的唯一事件是关闭和停用。所以在这里,您只能在“Application_Closing”事件中调用 BackgroundAudioPlayer.Instance.Close()。

于 2014-05-15T10:11:53.577 回答