【问题标题】:How to send content to server in background ? ios如何在后台向服务器发送内容? IOS
【发布时间】:2016-06-11 10:54:44
【问题描述】:
  • 首先我需要描述我要做什么:当用户启动我的应用程序时,应用程序开始收集有关用户活动和行为的统计信息,一旦用户关闭应用程序(应用程序进入后台)应用程序将所有统计信息上传到服务器。

  • 如果用户按两次主页按钮并从多任务屏幕中删除应用程序时出现的问题。那么应用程序可能无法成功将统计信息发送到服务器。因为它将被终止。

我的解决方案:

  1. 在后台模式下启用后台获取。但我认为这不会有帮助,因为根据苹果的说法: the system does not relaunch apps after they are force quit by the user

  2. 使用Executing Finite-Length Tasks,我试过了,如果用户从多任务屏幕中删除应用程序,它不会发送数据。

  3. 使用NSURLSession在后台下载内容,但根据苹果If the user terminates your app, the system cancels any pending tasks

所以如果用户终止应用程序,上述所有解决方案都将不起作用,任何解决方案?

我注意到,如果我在下载应用程序时终止 appstore 应用程序(将其从多任务屏幕中删除),该应用程序将继续正常下载。这仅适用于 appstore 应用吗?

【问题讨论】:

    标签: ios background ios8 ios9


    【解决方案1】:

    如果用户终止一个应用程序,该应用程序也会终止。您对此无能为力。 iOS 设备应由用户控制

    根据您要实现的目标,您可以将所有统计信息添加到磁盘上的队列中,并且仅在应用成功将数据上传到服务器后清空该队列。

    • 如果用户不强制退出,这将立即以您想要的方式工作。

    • 如果用户强制退出,数据将不会上传,队列仍会出现在磁盘上。当应用启动时,它可以检查队列并立即上传。

    无论如何,你都应该做这样的事情,处理用户地下一个小时,或者长途飞行的情况。

    我怀疑 App Store 应用没有安装应用,而是告诉系统进程安装它们。

    【讨论】:

      猜你喜欢
      • 2014-04-06
      • 1970-01-01
      • 2022-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-15
      • 1970-01-01
      • 2022-12-07
      相关资源
      最近更新 更多