iOS:应用程序崩溃并显示错误“应用程序无法及时启动”

时间:2011-10-19 18:13:40

标签: ios

我的iOS应用不在后台运行。当主页按钮被点击时,应用程序将终止。

以下是我的代码

- (void)applicationDidEnterBackground:(UIApplication *)application 
{
  double sleepTime = [[UIApplication sharedApplication] backgroundTimeRemaining] - 1;

  [self performTaskforTime:sleepTime];
}

如果应用程序很快重新启动,则应用程序的新实例将被终止并显示错误:

  

异常类型:00000020例外代码:0x8badf00d突出显示   线程:0

     

特定于应用程序的信息:My_App无法及时启动

我不能减少睡眠时间。对此有什么解决方案吗?

2 个答案:

答案 0 :(得分:0)

您需要从- (void)applicationDidEnterBackground:(UIApplication *)application返回,执行以下操作:

- (void)applicationDidEnterBackground:(UIApplication *)application 
{
  UIBackgroundTaskIdentifier btid = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:NULL];

  double sleepTime = [[UIApplication sharedApplication] backgroundTimeRemaining] - 1;

  dispatch_async(/* background queue */, ^{
    [self performTaskforTime:sleepTime];
    [[UIApplication sharedApplication] endBackgroundTask:btid];
  }
}

您不希望使用长时间运行的任务阻止主队列,否则您将无法为UI提供服务。您的应用程序正忙于-performTaskforTime:,因此无法及时启动。

答案 1 :(得分:0)

您无法阻止主应用程序线程超过几秒钟。见SO帖子。

Link