后台获取iOS终止的应用程序

后台获取iOS终止的应用程序,ios,ios7,background,background-task,background-fetch,Ios,Ios7,Background,Background Task,Background Fetch,我想这可能会被安静地回答几次,但仍然有一些未知的情况,我想澄清 我一直在研究我的一个iOS应用程序的后台获取API。我从几篇文章中了解到,当操作系统决定检查是否有来自后端服务器的新数据时(无论我们设置了什么自定义提取间隔),将调用fetchNewDataWithCompletionHandler。文章和教程说,只有当你的应用程序处于非活动/后台/挂起状态时,它才会被调用,而不是当用户从AppSwitcher强制终止应用程序时 但我的问题是, 在WWDC 2013视频中,讲师说: 有两个非常重要的

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

我一直在研究我的一个iOS应用程序的后台获取API。我从几篇文章中了解到,当操作系统决定检查是否有来自后端服务器的新数据时(无论我们设置了什么自定义提取间隔),将调用
fetchNewDataWithCompletionHandler
。文章和教程说,只有当你的应用程序处于非活动/后台/挂起状态时,它才会被调用,而不是当用户从AppSwitcher强制终止应用程序时

但我的问题是,

  • 在WWDC 2013视频中,讲师说:
  • 有两个非常重要的场景需要测试,第一个场景是 您的应用程序在后台启动以获取新内容,第二个是 你的应用程序在后台恢复以获取新内容

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

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


    谢谢

    第一种情况是您的应用程序当时没有运行。iOS已经决定给你的应用一些运行时间,但你的应用还没有发布

    如果手机最近重新启动(因此你的应用程序从未启动过),或者你的应用程序很可能因为其他东西需要内存而被关闭,那么就会发生这种情况。如果用户启动了许多其他大型应用程序(如游戏),那么您的应用程序最终将从内存中退出

    如果用户使用app switcher杀死应用程序,则永远不会发生这种情况;如果用户杀死了应用程序,iOS将不会重新启动它,因为假定用户希望它保持死机状态