我认为这可能会在很短的时间内得到解答,但仍然有一些未知的情况我想澄清。

我一直在寻找我的iOS应用程序之一的Background Fetch API。我从几篇文章中了解到,当OS决定检查后端服务器中是否有任何新数据时(不管我们设置了什么自定义提取间隔),都会调用fetchNewDataWithCompletionHandler。文章和教程还说,只有当您的应用程序处于非 Activity /后台/挂起状态时,才会调用该应用程序,而当用户从应用程序切换器强制终止该应用程序时,则不会调用该应用程序。

但是我的问题是;

  • 在WWDC 2013视频中,讲师说:

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

    我认为第二种情况是应用程序从后台/暂停状态恢复。但是,第一种情况是什么?我们的应用将从哪个状态在后台“启动”以获取数据?从不运行状态?
  • 要测试后台获取,有两种选择,一种是使用“由于后台获取而启动”来创建新方案,另一种是通过调试/模拟后台获取。我认为第二个是在应用程序处于后台或挂起状态时模拟后台获取。但是第一种情况是什么?关于何时应用程序不运行(从应用程序切换器中删除)吗?

  • 有什么想法吗?

    谢谢!!

    最佳答案

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

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

    如果用户使用应用程序切换器终止了该应用程序,则永远不会发生这种情况。如果用户杀死了该应用程序,则iOS将不会重新启动它,因为假定用户希望它保持死状态。

    10-07 19:26
    查看更多