首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保持应用程序在后台10分钟,而在后台什么都不做。

保持应用程序在后台10分钟,而在后台什么都不做。
EN

Stack Overflow用户
提问于 2013-03-28 16:41:23
回答 1查看 200关注 0票数 1

我的应用程序里有这个代码-

代码语言:javascript
复制
- (void)applicationDidEnterBackground:(UIApplication *)application
{
    ...
    bgTask = [application beginBackgroundTaskWithExpirationHandler:^{
            if (bgTask != UIBackgroundTaskInvalid)
            {
                [application endBackgroundTask:bgTask];
                bgTask = UIBackgroundTaskInvalid;
            }
    }];
    //NO MORE CODE AFTER THAT
}

我只想延长我的应用程序在后台运行的时间,以处理来自外部源的一些事件。通过使用这个应用程序的代码,有时应用程序会与日志崩溃-

应用程序名的主动断言超过了允许的时间。

有人能帮我吗?

即使它崩溃了,也不会影响用户。由于应用程序处于后台,用户不会了解该应用程序的崩溃情况。我只是担心应用商店的评论会拒绝我。需要紧急帮助!

编辑:我的应用程序是通过异步TCP与外部设备进行通信。使用上面的代码,当我将我的应用程序发送到后台时,它会接收额外10分钟的数据。 10分钟后,当我将应用程序带到前台时,应用程序还没有关闭,但它显示套接字连接已经断开。因此,当应用程序在10分钟后到达前台,它就开始重新建立连接。

这种情况发生在大约80%的测试用例中。剩下的20%导致了上述事故。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-28 16:46:10

在后台,你在主线上做什么工作?如果您正在阻止它,则不会调用过期处理程序块,维兹

在应用程序的剩余后台时间达到0之前不久将调用的处理程序。您应该使用这个处理程序来清理和标记后台任务的结束。如果不显式地结束任务,将导致应用程序的终止。在主线程上同步调用处理程序,从而在通知应用程序时暂时阻止应用程序的暂停。

这将导致看门狗在你没有及时结束你的背景任务的情况下对你进行批评。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15687459

复制
相关文章

相似问题

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