首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ios 7.1和ios 8.0中运行时,应用程序在睡眠模式下崩溃

在ios 7.1和ios 8.0中运行时,应用程序在睡眠模式下崩溃
EN

Stack Overflow用户
提问于 2014-10-30 12:04:56
回答 2查看 1K关注 0票数 2

当应用程序处于睡眠模式时,我正在检查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。

代码语言:javascript
复制
[self performSelectorOnMainThread:@selector(keepAlive) withObject:nil waitUntilDone:YES];
                [[UIApplication sharedApplication] setKeepAliveTimeout:KEEP_ALIVE_INTERVAL handler: ^{

[self performSelectorOnMainThread:@selector(keepAlive) withObject:nil waitUntilDone:YES];

                }];

有没有人知道这个问题,请告诉我。

EN

回答 2

Stack Overflow用户

发布于 2015-01-08 01:45:32

此崩溃是在没有匹配的-beginBackgroundTaskWithExpirationHandler:的情况下调用-endBackgroundTask:的结果。至少,您应该在过期处理程序中结束后台任务,如下所示:

代码语言:javascript
复制
__block UIBackgroundTaskIdentifier backgroundTaskID = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
    [[UIApplication sharedApplication] endBackgroundTask:backgroundTaskID];
    backgroundTaskID = UIBackgroundTaskInvalid;
}];

资料来源:

票数 2
EN

Stack Overflow用户

发布于 2014-10-30 12:07:39

尝尝这个。

代码语言:javascript
复制
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [UIApplication sharedApplication].idleTimerDisabled=YES;
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26652538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档