通过代码退出iphone中的应用程序

时间:2011-11-09 05:01:28

标签: iphone

  

可能重复:
  how to quit (exit) an app in iPhone4 sdk

我在应用的第一个视图中有一个关闭按钮。我需要在按钮单击时成功关闭应用程序。我试过这两个案子但没有工作。

  1. [[UIApplication sharedApplication] terminate];
  2. [[UIApplication sharedApplication] exit(0)];

4 个答案:

答案 0 :(得分:2)

iOS应用程序不应该自行退出;用户使用设备按钮退出/暂停应用程序。有关iOS人机界面指南中此读取Don't Quit Programmatically的更多信息。

如果您的应用已经完成了它的任务,您通常会退出,您只需将应用的状态重置为应用启动时的状态。您可能应该在UI中包含一些提示,以便用户了解正在发生的事情 - 记住,用户应该在这里负责。但是,如果你的应用程序已经达到了合乎逻辑的结论,那么对用户来说最“正确”的事情可能是回到初始状态。你经常会看到游戏 - 一旦游戏完成,应用程序会回到介绍屏幕并等待用户开始另一场游戏。

请注意,您发布的两个代码段都不正确。 UIApplication没有-terminate方法。 (NSApplication确实有一个-terminate:方法,但它需要一个参数,显然在iOS中不可用。)你的第二个例子将函数调用语法与消息发送语法混合在一起,没有任何意义 - 我怀疑它甚至会编译。

答案 1 :(得分:1)

类似的事情我也在做,而我想在显示提醒后退出我的应用程序我认为这可能有助于你......

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex

NSLog(@"%@",alertView.title);
if(alertView.title== @"Collision failed")
{
    if(buttonIndex==0)
    {
    //gameState = kGameStateRunning;
    [self loadView];
    [self viewDidLoad];
        count=0;
    }
    else
    {
        exit(0);
    }
}
else 
{
    if(buttonIndex==0)
    {
        //gameState = kGameStateRunning;
        [self loadView];
        [self viewDidLoad];
    }
    else
    {
        second_stage *obj=[[second_stage alloc]initWithNibName:@"second_stage" bundle:nil];
        obj.count2=count;
        [self presentModalViewController:obj animated:YES];
    }
}

我正在写exit(0);

答案 2 :(得分:0)

我不太确定但是对于HIG,iPhone应用程序不应该关闭。

但您可以在应用程序的plist中设置UIApplicationExitsOnSuspend 。当您切换到另一个应用程序时,它将导致应用程序不在iOS4下进入后台。 :)

答案 3 :(得分:0)

只需致电exit(0);

无需使用UIApplication实例调用。但是在调用exit方法之前,做任何你需要做的事情,比如保存状态,值,如果有的话等,