0

崩溃报告详细信息:

Exception Type:  00000020
Exception Codes: 0x8badf00d
Highlighted Thread:  3

Application Specific Information:
MyApp[123] has active assertions beyond permitted time: 
{(
    <SBProcessAssertion: 0x4b52f0> identifier: CoreLocationBackgroundClient process: MyApp[579] permittedBackgroundDuration: 600.000000 reason: finishTask owner pid:123 preventSuspend  preventIdleSleep 
)}

Elapsed total CPU time (seconds): 13.980 (user 13.980, system 0.000), 1% CPU 
Elapsed application CPU time (seconds): 0.251, 0% CPU

线程 3 是:

Thread 3 name:  com.apple.NSURLConnectionLoader
Thread 3:
0   libsystem_kernel.dylib          0x30e67004 mach_msg_trap + 20
1   libsystem_kernel.dylib          0x30e671fa mach_msg + 50
2   CoreFoundation                  0x381ea3ec __CFRunLoopServiceMachPort + 120
3   CoreFoundation                  0x381e9124 __CFRunLoopRun + 876
4   CoreFoundation                  0x3816c49e CFRunLoopRunSpecific + 294
5   CoreFoundation                  0x3816c366 CFRunLoopRunInMode + 98
6   Foundation                      0x373a7bb2 +[NSURLConnection(Loader) _resourceLoadLoop:] + 302
7   Foundation                      0x373a7a7a -[NSThread main] + 66
8   Foundation                      0x3743b58a __NSThread__main__ + 1042
9   libsystem_c.dylib               0x333c972e _pthread_start + 314
10  libsystem_c.dylib               0x333c95e8 thread_start + 0

该应用程序使用 GPS。知道为什么会发生这种崩溃吗?

4

1 回答 1

1

看起来好像您使用了错误类型的后台处理。600 秒是赠品。这表明您正在使用任务完成 API,它为应用程序提供有限的时间(当前为 10 分钟)以在暂停某些活动之前完成它们。

如果您想在后台继续监控 GPS 位置,您需要使用特定的核心位置 API(并在 Info.plist 中设置适当的标志)。

于 2012-06-26T07:17:45.587 回答