3

我想这可能会被安静地回答几次,但我仍然想澄清一些未知的情况。

我一直在为我的一个 iOS 应用程序查看 Background Fetch API。我从几篇文章中了解到,fetchNewDataWithCompletionHandler当操作系统决定检查后端服务器是否有任何新数据时(无论我们设置什么自定义获取间隔),这些文章都会被调用。文章和教程说只有当您的应用程序处于非活动/后台/暂停状态时才会调用它,而不是当用户从应用程序切换器强行终止应用程序时。

但我的问题是;

  1. 在 WWDC 2013 视频中,讲师说:

有两个非常重要的场景需要测试,第一个场景是您的应用在后台启动以获取新内容,第二个场景是您的应用在后台恢复以获取新内容。

我认为第二种情况是应用程序从后台/暂停状态恢复。但是第一个场景是什么?我们的应用程序将从哪个状态在后台“启动”以获取数据?从不运行状态?

  1. 要测试后台获取,有两种选择,一种是使用“由于后台获取而启动”创建新方案,另一种是来自调试/模拟后台获取。我认为第二个是在应用程序处于后台或挂起时模拟后台获取。但是第一种情况是什么?是否与应用程序未运行时有关(从应用程序切换器中删除)?

有什么想法吗?

谢谢!!

4

1 回答 1

1

第一种情况是您的应用程序当时没有运行。iOS 已决定给您的应用程序一些运行时间,但您的应用程序尚未启动。

如果手机最近重新启动(因此您的应用程序从未启动),或者您的应用程序很可能因为其他事情需要内存而被终止,则可能会发生这种情况。如果用户启动了许多其他大型应用程序(例如游戏),那么您的应用程序最终将被从内存中清除。

如果用户使用应用切换器关闭应用,这将永远不会发生;如果用户杀死了应用程序,那么 iOS 将不会重新启动它,因为假定用户希望它保持死亡状态。

于 2015-05-17T22:35:24.023 回答