2015-12-21 65 views
1

我正在iOS 9.0.2设备上测试我的应用程序。我有服务从设备上传数据。当上传在前台时,它工作正常。 但是,当上传在后台运行并且设备被自动锁定(引脚安全)时,它会停止并崩溃。NSURLConnection应用程序在设备锁定时发生崩溃

Exception Type: EXC_BAD_ACCESS (SIGBUS) 
Exception Subtype: unknown at 0x0000000105eaa000 
Triggered by Thread: 7 

Filtered syslog: 
None found 

Thread 7 name: Dispatch queue: com.apple.NSURLSession-work 
Thread 7 Crashed: 
0 CoreFoundation     0x0000000184f51730 0x184e64000 + 972592 
1 CoreFoundation     0x0000000184f50e44 0x184e64000 + 970308 
2 CoreFoundation     0x0000000184e68000 0x184e64000 + 16384 
3 CFNetwork      0x000000018481c09c 0x18465c000 + 1835164 
4 CFNetwork      0x00000001846d997c 0x18465c000 + 514428 
5 CFNetwork      0x00000001847e1814 0x18465c000 + 1595412 
6 CFNetwork      0x0000000184783144 0x18465c000 + 1208644 
7 CFNetwork      0x0000000184777548 0x18465c000 + 1160520 
8 CFNetwork      0x000000018477ec9c 0x18465c000 + 1191068 
9 CFNetwork      0x0000000184776528 0x18465c000 + 1156392 
10 libdispatch.dylib    0x000000019a3797b0 0x19a378000 + 6064 
11 libdispatch.dylib    0x000000019a379770 0x19a378000 + 6000 
12 libdispatch.dylib    0x000000019a38575c 0x19a378000 + 55132 
13 libdispatch.dylib    0x000000019a37d274 0x19a378000 + 21108 
14 libdispatch.dylib    0x000000019a38762c 0x19a378000 + 63020 
15 libdispatch.dylib    0x000000019a38734c 0x19a378000 + 62284 
16 libsystem_pthread.dylib   0x000000019a58d478 0x19a58c000 + 5240 
17 libsystem_pthread.dylib   0x000000019a58d028 0x19a58c000 + 4136 

当我进行调试时,它会指向调试器中与NSURLConnection调用关联的内存位置。

仅当设备开启密码时才会观察到问题。如果它被关闭并且用户锁定了电话,它将上传文件而不会出现任何错误。

帮助赞赏。

+0

无锁定地测试 –

+0

也许您的NSURLConnection无法访问您想要上传的资源。 –

+0

没有锁定手机,它工作正常,没有中断。 iOS 9引入了用于访问多媒体资源的限制吗? – Raghav

回答

0

NSURLConnection不能在后台工作,直到您将其设置为在后台线程上工作。即使在后台运行后,您也会获得最多3分钟的时间来完成您的任务,否则OS会暂停此过程。

+0

是的,这个实现已经在我的代码中。 3分钟后,它会暂停,并且一旦到达前景就会恢复。 – Raghav

0

我和我的iPhone应用程序有类似的问题。我会启动一个后台线程从我的Web服务下载一些数据,但是如果设备进入空闲模式,它将会终止网络连接。

当然,解决方案是设置idleTimerDisabled以防止设备进入睡眠状态,同时它正忙于同步数据。

但即便如此,它的工作实在太差了,即使是在iOS的8

我讨厌的小的解决方案是建立一个计时器,以反复防止设备进入休眠状态:

iPhone - phone goes to sleep even if idleTimerDisabled is YES

所以,回到你的问题,我需要在前台线程中运行我的下载功能,并特别是防止设备进入睡眠。

希望这会有所帮助。

+0

我试过这个仍然是相同的问题,只有当密码开启时才会观察到问题。 – Raghav

相关问题