如何在后台向服务器发送内容? ios

问题描述:

  • 首先,我需要描述一下我要做什么:当用户启动我的应用程序时,应用程序开始收集用户活动和行为的统计信息,一旦用户关闭应用程序(应用程序进入后台)应用程序会将所有统计信息上传如何在后台向服务器发送内容? ios

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

我的解决方案:

  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设备意味着可由用户控制。

取决于你想要达到的目的,你可能所有的统计信息添加到队列在磁盘上,并清空该队列只后的应用程序已经成功上传数据到服务器。

  • 如果用户没有强制退出,这会立即工作,只是你想要的方式。

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

你应该做这样的事情在任何情况下,对付如用户进入地下了一个小时,或采取长途飞行的情况。

我怀疑App Store应用程序不会安装应用程序,但会告诉系统进程安装它们。