iPhone:离开应用程序的正确方法是什么?

时间:2010-08-22 07:34:21

标签: iphone delegates exit

大家好,

使用iOS 4,iPhone支持多任务,非常好,但我不希望在我的应用程序中支持。我的意思是,当用户按下主页按钮时,我希望我的应用程序完成,而不是在后台输入。使用iOS 4,当用户按下主页按钮时,应用程序调用applicationDidEnterBackground:委托的方法进入后台并为了“强制”应用程序完成,当用户按下主页按钮时,我已经完成了以下操作实现:

- (void)applicationDidEnterBackground:(UIApplication *)application {
        //save everything...
    exit(0);
}

问题:我注意到,exit(0)使应用程序立即完成,而不调用deallocating方法,如“dealloc”,我认为这不是一个好的编程风格。所以我想问你们,如何以“更好”的方式完成申请。

提前致谢。

4 个答案:

答案 0 :(得分:4)

你真正想要的不是退出应用程序(这是不允许提到的),但告诉操作系统你宁愿杀死你的应用程序而不是背景。

有一个info.plist键,UIApplicationExitsOnSuspend。将info.plist中的内容设置为TRUE(已选中),然后当您的应用进入后台时,它将被终止。

答案 1 :(得分:2)

这是两个问题:

  1. 如何以编程方式退出iPhone应用程序 - 重复

    Proper way to exit iPhone application?

  2. 如何让iPhone应用无法转到iOS4中的后台:

    UIApplicationExitsOnSuspend密钥添加到info.plist并将其值设置为YES http://developer.apple.com/iphone/library/documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/uid/TP40009252-SW23

答案 2 :(得分:1)

上面的一个答案说:“有一个info.plist密钥,UIApplicationExitsOnSuspend。将你的info.plist设置为TRUE(选中),然后当你的应用程序进入后台时,它将被终止。”使用Xcode 4,info.plist值为“应用程序不在后台运行”类型为Boolean,因此将此设置为YES将在用户按下“主页”按钮时退出应用程序。

答案 3 :(得分:0)

你不被允许。我从经验中知道:因为我已经退出(这是两年半前但是我怀疑他们已经在这里改变了他们的政策),因此Apple拒绝了应用程序。在UIApplication,IIRC上有一个“私有”(即头文件中未提及)方法“终止”。但苹果表示你可能不这样做。您唯一能做的就是显示一个对话框,要求用户按下主页按钮。但是如果在启用了多任务处理的设备上反过来也不起作用...所以我猜你真的必须改变你的应用程序,这样你就可以在applicationDidEnterBackground上丢弃你的状态并重新启动applicationDidBecomeActive上的应用程序。