applicationWillTerminate问题

时间:2011-06-06 07:18:05

标签: iphone

我想在用户点击Iphone主页按钮时显示UIAlertView(意味着关闭应用程序)

我已经完成了这些代码

- (void)applicationWillTerminate:(UIApplication *)application
{
    NSString *errorString =@"Testing";

    UIAlertView * errorAlert = [[UIAlertView alloc] initWithTitle:@"Alert" message:errorString delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [errorAlert show];
    [errorAlert release];
}

但是UIAlertView没有显示。请帮忙

先谢谢

5 个答案:

答案 0 :(得分:2)

用户的目的是在他/她按下主页按钮时关闭您的应用程序。 Apple建议让他/她这样做。我想说的是:不要这样做。我认为这甚至是不可能的。

答案 1 :(得分:0)

查看Problem with applicationShouldTerminate on iPhone

  • 警告视图永远不会显示,因为 'show'方法不会阻止,和 因此,结束了 达到'applicationWillTerminate' 创建后立即创建 警报视图并尝试显示它。一世 相信这是设计的。你不能 真正开始异步操作 在'applicationWillTerminate'。

答案 2 :(得分:0)

    按下“主页”按钮时,可能无法在较新版本的iOS中调用
  1. applicationWillTerminate:,因为该应用只能进入后台模式,而不是实际终止。

  2. 即使它实际被调用(应用程序确实被终止,或者您将代码移动到applicationWillEnterForeground:),显示警报也没用,因为警报与活动应用程序相关联,并且您的应用在显示提醒时已停用!所以真正发生的是,当用户按下主页按钮时警报消失,当他们恢复你的应用程序时,他们会看到一个神秘的警报弹出。

  3. 不要问用户是否想要退出您的应用。这不是iOS的常态。相反,请保存applicationDidEnterBackground:中的所有状态,并在applicationWillEnterForeground:application:didFinishLaunchingWithOptions:中恢复这些状态,让用户感觉应用程序从未被终止。

答案 3 :(得分:0)

您可能不想使用applicationWillTerminate,而是使用applicationWillResignActive。查看较早的帖子,例如this one以获取更多信息。

答案 4 :(得分:0)

当应用程序收到SIGKILL(退出)命令时,您无法显示uialertview。您可以在applicationWillTerminate中调用任何文件或后台函数 - 为此,您需要在plist中设置一个键。

UIApplicationExitsOnSuspend - 布尔 - 是。