我的应用程序中有此代码-
- (void)applicationDidEnterBackground:(UIApplication *)application
{
...
bgTask = [application beginBackgroundTaskWithExpirationHandler:^{
if (bgTask != UIBackgroundTaskInvalid)
{
[application endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
}
}];
//NO MORE CODE AFTER THAT
}
我只想延长我的应用程序在后台运行的持续时间以处理来自外部源的一些事件。通过使用此代码应用程序,有时应用程序会因日志而崩溃 -
[app-name]有超过允许时间的活动断言
谁能帮我这个?
即使它崩溃了,它也不会影响用户。由于应用程序在后台,用户不会知道崩溃。我只是担心应用商店评论被拒绝。需要紧急帮助!:(
编辑: 我的应用程序是通过异步 TCP 套接字与外部设备通信。使用上面的代码,当我将我的应用程序发送到后台时,它会再接收 10 分钟的数据。10 分钟后,当我将应用程序带到前台时,应用程序尚未关闭,但它显示套接字连接已断开。因此,一旦应用程序在 10 分钟后进入前台,它就会开始重新建立连接。
这发生在大约 80% 的测试用例中。剩下的 20% 会导致上述崩溃。