ios - 同时从iOS应用上传数据

标签 ios multithreading background-process

我需要将文件上传到iOS应用中的服务器。我希望这种情况在应用程序运行时发生,但以并发方式(在单独的线程上)发生,因此上载对应用程序的用户不可见。

在“背景”中运行任何东西似乎很复杂,因此我想确保我正确地回答了这个问题。我想知道的是:

1)当应用程序处于前台时,我是否可以有一个包含计时器的“后台线程”,该计时器将在数据可用时将数据上传到服务器?

2)如果是这样,当用户将另一个应用程序带到前台时,上传任务将如何处理?

3)如果是这样,实现此类并发的最佳实践是什么?进入寒冷状态,线程是我要考虑的第一件事,但是可能会有更好,更简单的方法来实现这一目标。

谢谢您的帮助!

最佳答案

答案是“大中央调度”或“操作队列”。有关更多详细信息,请参见Concurrency Programming Guide

1)通过使用调度队列或操作队列,您无需担心有计时器或轮询数据。系统处理所有这些详细信息。当您获得要上传的数据时,您将创建一个简单的上传任务,将该任务发送到队列,该队列负责所有调度。

2)队列将被暂停。当您的应用恢复时,队列也将恢复。您的任务必须能够处理可达性问题和网络超时。此外,您必须记住,您的应用可能随时被杀死。在进入后台之前保存状态。

3)不要使用线程;使用队列。

关于ios - 同时从iOS应用上传数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11178818/

相关文章:

c++ - C++ 中的多线程 SDL 错误

ios - 带有透明孔的 CALayer

ios - 如何在iOS应用中播放RTMP视频流?

ios - 如何重命名 AVPlayer 中的完成按钮?

java - EJB 中的多线程

multithreading - 相当于 RUSAGE_THREAD Darwin ?

bash - 如何使用 bash -c 运行后台进程

bash - 删除<某些命令> | netcat 通过 ssh 到后台

jupyter-notebook - 如何在启动它的单元格中打印 jupyter 后台作业输出?

ios - 如何为 CollectionViewCell 设置两个 ImageView