我正在创建一个连接到服务器并发送一些文本的应用程序.如果有网络(wifi或3g),它会立即将文本发送到服务器.但是如果没有网络,它会每隔5分钟继续轮询服务器连接.这部分工作正常.
但是当使用iPhone 4设备时,即使应用程序进入后台,我也希望应用程序检查服务器连接.因此,当应用程序进入后台并且当网络返回时,它必须能够将文本发送到服务器.
我怎样才能实现它?我见过一些应用程序,他们说即使在后台,应用程序也会将照片上传到服务器.他们将如何做到这一点?
A)如果NSURLSession在iOS7中在后台运行任务,Apple是否在NSURLSession中集成了内部队列?它如何在辅助线程和App挂起模式下工作?
B)NSURLSession和NSoperationqueue有什么区别?
C)如果NSURLSession是NSURLCOnnection的替代,我们可以将NSURLSession集成到NSOPerationqueue中吗?
D)两者都一样吗?
E)我们可以在NSURLSession中执行与NSoperationQueue相同的操作吗?
f)关闭申请后,在后台完成任务是否有时间限制?因为iOS7做2分钟而ios6做10分钟?
G) 教程说在配置和限制部分,后台会话根本不支持NSURLSessionDataTasks,你应该只将这些任务用于短期的小请求,而不是下载或上传.有些教程告诉我们没有时间限制,我们可以下载或上传数据,大小可能是什么......请详细解释一下这个?如果NSURLSession是NSUrlconnection的替代品,哪一种在所有情况下都是最好的?NSUrlconnection的未来是什么?
我在一个单独的viewcontroller中从ASynchronous NSURLConnection下载大数据.下载数据需要2分钟.它工作正常.但是当我通过退出应用程序进入后台模式并再次打开时,启动画面会强制关闭应用程序.当下载小数据时,它在后台模式下在同一个视图控制器中工作正常.我在读取苹果的有限长度后使用了以下代码documnet.但它没有用?请帮忙吗?
- (void)applicationDidEnterBackground:(UIApplication *)application
{
UIApplication *app = [UIApplication sharedApplication];
bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
[app endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
}];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{});
[app endBackgroundTask:bgTask]; bgTask = UIBackgroundTaskInvalid;
}
Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我正在使用单独的线程在某个时间点下载和上载数据NSOperation.两个过程都需要大约.2-3分钟 如果应用程序仍然有效,那么一切正常.但是,如果iPad屏幕被锁定(自动或手动),则应用程序变为非活动状态,下载/上传暂停,并且在一段时间过程失败并且超时错误后屏幕解锁.
我在plist文件中为"必需的背景模式"播放了"App播放音频".在屏幕锁定时,我是否需要设置任何其他标志来运行应用程序?
出了什么问题请帮帮我.