如果用户在离线状态下(例如飞行模式)在 iOS 应用程序中执行操作,即使用户完全关闭应用程序,应用程序能否在用户在线时完成该操作(通过向其服务器发送数据) em>在上网之前?
我问是因为 Twitter 和 Facebook 没有这个功能。 (如果我在离线状态下发帖,然后关闭应用程序并上线,直到我再次启动应用程序时才会提交帖子。)
最佳答案
没有。如果用户杀死了你的应用程序,它就消失了。它不能再执行您的任何应用程序代码。你能做的最好的就是研究background tasks然后你有大约 10 分钟的时间来执行你的操作,然后它会自动终止(如果用户没有在操作系统之前执行它)。
您可以将操作存储在数据库中(Core Data、Realm)甚至在 NSUserDefaults 中。当应用程序上线时,您可以定期尝试解析这些操作并使用 exponential back-off 发送网络请求。 .我想这就是 Facebook 和 Twitter 使用的过程。
关于ios - iOS平台是否提供后台同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34531494/