我想创建一个简单的应用程序,在那里用户可以拍照。关键的事情是,我需要保证照片尽快上传到我们的服务器。这肯定是真的,即使照片是在没有互联网连接的情况下拍摄的,或者即使电池在上传过程中耗尽了,或者你能想到的任何其他情况。
解决这个问题最简单的方法是使用进度条,但我真的不希望我的用户不必要地等待。
这还不够好,照片将被上传到下一次的应用程序是启动,因为我需要尽快照片。
我的问题是,是否有可能保证照片在后台上传?
This的问题有点类似,但我没有任何东西可以使用位置,所以应用程序可能会被拒绝我的应用程序商店。
发布于 2012-06-15 07:25:29
简而言之:你不能保证任何事情。你只能尝试并希望它被上传,你可以做一些事情来最大化你的机会,但如果很长一段时间没有连接,考虑到你提到的限制,你无能为力。
只有在应用程序处于前台时,才能执行上传。
除非你有一个背景类型-就像你已经猜到的,如果你假装有位置,或者其他类型中的一个,而你没有,那么你就会被拒绝。
因此,您唯一可用的其他选择就是使用beginBackgroundTaskWithExpirationHandler。
这将给你大约10分钟的时间在后台执行任务,一旦用户离开了你的应用程序(但如果他们终止了应用程序,你就无能为力了)。
如果应用程序在前台时没有连接,加上移动到后台后的额外10分钟,除了下次应用程序启动时重试之外,你什么也做不了。
使用可达性类查看是否存在对url的可达性,如果是,请尝试上载它,如果没有注册可达性状态更改的通知,则在可访问性出现时立即尝试重新上载它。
如果您可以访问,请尝试上传,如果出现网络故障,请继续重试,直到10分钟结束。
附言:当电池没电时,你怎么能保证它被上传呢?
https://stackoverflow.com/questions/11042409
复制相似问题