2010-09-20 54 views
0

我用一个按钮和一个UISlider做了一个小测试应用程序。触摸该按钮可更改其标签文字。 我已经为两个控件添加了IBOutlet属性。我释放viewDidUnload中的所有属性,并将它们设置为dealloc中的零。为什么我的iPhone应用程序部分记住它的UI状态?

有趣的是现在我触摸按钮。它的标签从“0”更改为“1”,其文本更新:标签== 1 - >“B”,标签== 0 - >“A”。所以文字现在说“B”。 然后我关闭应用程序(iPhone主页按钮)并重新启动它。 仍按钮说“B”!这怎么可能?该应用没有终止?

上运行的iOS4.1这里的iPhone 4

回答

2

你说得对。该应用程序没有终止。在iOS 4中,当主页按钮被按下时,应用程序被暂停。当你“重新启动”应用程序时,它只是移动到前台。这就是为什么你的应用程序状态没有改变。注意:一旦暂停,应用程序可能会在没有通知的情况下被操作系统终止,因此请确保在应用程序暂停前完成所有保存操作,例如applicationDidEnterBackground:

+0

这是可怕的东西。 :-) – Krumelur 2010-09-20 20:21:46

+0

我可以强制应用程序“死”吗?我的意思是,我可以在“applicationDidEnterBackground”中调用任何东西来真正结束应用程序? – Krumelur 2010-09-20 20:22:14

+0

防止您的应用被暂停的适当方法是退出。在您应用程序的Info.plist文件中,将UIApplicationExitsOnSuspend的值设置为YES。如果你这样做,当用户点击主页按钮时,你的应用程序委托的applicationWillTerminate:方法将被调用,然后你的应用程序将终止。 – 2010-09-20 20:41:34