我需要将文件上传到iOS应用中的服务器。我希望这种情况在应用程序运行时发生,但以并发方式(在单独的线程上)发生,因此上载对应用程序的用户不可见。
在“背景”中运行任何东西似乎很复杂,因此我想确保我正确地回答了这个问题。我想知道的是:
1)当应用程序处于前台时,我是否可以有一个包含计时器的“后台线程”,该计时器将在数据可用时将数据上传到服务器?
2)如果是这样,当用户将另一个应用程序带到前台时,上传任务将如何处理?
3)如果是这样,实现此类并发的最佳实践是什么?进入寒冷状态,线程是我要考虑的第一件事,但是可能会有更好,更简单的方法来实现这一目标。
谢谢您的帮助!
最佳答案
答案是“大中央调度”或“操作队列”。有关更多详细信息,请参见Concurrency Programming Guide。
1)通过使用调度队列或操作队列,您无需担心有计时器或轮询数据。系统处理所有这些详细信息。当您获得要上传的数据时,您将创建一个简单的上传任务,将该任务发送到队列,该队列负责所有调度。
2)队列将被暂停。当您的应用恢复时,队列也将恢复。您的任务必须能够处理可达性问题和网络超时。此外,您必须记住,您的应用可能随时被杀死。在进入后台之前保存状态。
3)不要使用线程;使用队列。
关于ios - 同时从iOS应用上传数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11178818/