我正在构建一个应用,用户可以在线和离线时输入数据。 此数据必须与服务器同步。 如果用户在线,则不是真正的问题。 但是现在我需要发送用户在离线时输入的数据,一旦他获得互联网连接(例如当他离开飞机并且手机连接到网络时)。
我想到的当前解决方案是使用iOS和Android上提供的后台服务每隔X分钟轮询一次服务器以查看手机是否在线。 对于Android来说,这似乎不是一个太大的问题。 然而,iOs似乎更难。 根据这篇文章iOS app upload data to server as soon as network is available,这是不可能的。但似乎iOS 7增加了新的后台功能,可能使这个用例变得可行。我找不到任何关于它的好例子或文件。
所以核心问题是,即使我的应用程序暂时没有被使用,我怎么能检测到手机上线的事实(甚至可能在上次重启手机后根本没有使用过)?
答案 0 :(得分:0)
我最近发现了一段完美的代码来实现后台获取。
注意:强> 使用Background Fetch时,您应该了解一个限制。给应用程序的后台执行时间不是无限的。 iOS提供30秒的时间框架,以便唤醒应用程序,获取新数据,更新其界面,然后再次进入睡眠状态。你有责任确保任何执行的任务能够在30秒内完成,否则系统会突然停止它们。如果需要更多时间,则可以使用后台传输服务API
<强>代码:强> DemoProject
<强>参考:强> ios7-background-fetch-programming
我希望它会对你有所帮助。
答案 1 :(得分:0)