【问题标题】:How to execute a method when user quit iOS application (Swift)?用户退出iOS应用程序(Swift)时如何执行方法?
【发布时间】:2016-12-19 05:49:12
【问题描述】:

我一直在构建 iOS 音乐应用程序和 我正在使用 MPMusicPlayerController.systemMusicPlayer() 从设备的 iTunes 库中播放音乐。

我尝试 applicationWillTerminate 来停止音乐播放器,但它不起作用,在做了一些研究后我发现 iOS 4 之后 applicationWillTerminate 方法将*几乎永远不会被调用,我们必须在 applicationDidEnterBackground 方法中完成所有工作。

但我的意思是,我希望我的音乐播放器在进入后台时继续播放音乐,并且只有在用户强制退出应用程序时才停止音乐,我该如何实现这种行为?

【问题讨论】:

标签: ios swift ios-lifecycle


【解决方案1】:

重要提示:如果您的应用当前处于挂起状态,则不会调用 applicationWillTerminate: 方法。

即使您使用 iOS SDK 4 及更高版本开发您的应用程序,您仍必须准备好您的应用程序在没有任何通知的情况下被终止。用户可以使用多任务 UI 明确地终止应用程序。此外,如果内存受到限制,系统可能会从内存中删除应用程序以腾出更多空间。暂停的应用程序不会收到终止通知,但如果您的应用程序当前在后台状态下运行(并且未暂停),系统会调用您的应用程序委托的 applicationWillTerminate: 方法。您的应用无法通过此方法请求额外的后台执行时间。

https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/TheAppLifeCycle/TheAppLifeCycle.html

【讨论】:

  • 是的,但是有没有办法实现上述功能?
  • 对不起,我已经在我的音乐应用中解决了这个问题,但我使用的是 MPMediaPlayer
  • 你是怎么解决的?你能给我解释一下吗?
  • 我使用以下在 github 链接中给出的代码。使用 MPMediaItem 的 AVQueuePlayer
猜你喜欢
  • 2012-08-29
  • 1970-01-01
  • 2011-07-02
  • 2019-06-27
  • 1970-01-01
  • 2016-04-15
  • 1970-01-01
  • 1970-01-01
  • 2013-09-05
相关资源
最近更新 更多