当应用程序处于睡眠模式时,我正在检查xcode中的日志。我正在使用基于voip的应用程序。我已经完成了所有有关voip的手续。我能够保持应用程序在睡眠模式超过20分钟。但是当我从系统中断开设备连接后,我已经在睡眠模式下运行了这个应用程序。在3-4分钟内,应用程序就会崩溃。我已经签入了设备日志崩溃。表现得就像
< BKProcessAssertion: 0x1463ab50 >id:xxx-xxx-xx.名称:由SwyxOTT调用,来自-application enterIntoBackgroundState进程:< BKNewProcess: 0x14529680;com.aahlaad.SwyxiOSClient;pid:289 > permittedBackgroundDuration: 180.000000原因: finishTask所有者pid: 289 preventSuspend preventIdleSleep preventSuspendOnSleep
我使用的是保活超时功能。您可以看到下面的函数。我使用的是UDP连接,pjsip 2.2.1。
[self performSelectorOnMainThread:@selector(keepAlive) withObject:nil waitUntilDone:YES];
[[UIApplication sharedApplication] setKeepAliveTimeout:KEEP_ALIVE_INTERVAL handler: ^{
[self performSelectorOnMainThread:@selector(keepAlive) withObject:nil waitUntilDone:YES];
}];有没有人知道这个问题,请告诉我。
发布于 2015-01-08 01:45:32
此崩溃是在没有匹配的-beginBackgroundTaskWithExpirationHandler:的情况下调用-endBackgroundTask:的结果。至少,您应该在过期处理程序中结束后台任务,如下所示:
__block UIBackgroundTaskIdentifier backgroundTaskID = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
[[UIApplication sharedApplication] endBackgroundTask:backgroundTaskID];
backgroundTaskID = UIBackgroundTaskInvalid;
}];资料来源:
发布于 2014-10-30 12:07:39
尝尝这个。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[UIApplication sharedApplication].idleTimerDisabled=YES;
}https://stackoverflow.com/questions/26652538
复制相似问题