簡體   English   中英

iPhone:離開應用程序的正確方法是什么?

[英]iPhone: What is the correct way to leave an Application?

大家好

在iOS 4上,iPhone支持多任務處理,這非常好,但是我不希望在我的應用程序中支持該功能。 我的意思是,當用戶按下“主頁”按鈕時,我希望我的應用程序完成而不要在“后台”中輸入。 在iOS 4中,當用戶按下主屏幕按鈕時,應用程序會調用applicationDidEnterBackground:委托的方法在后台輸入,並在用戶按下主屏幕按鈕時“強制”應用程序完成,因此我完成了以下操作實施:

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

問題:我注意到,exit(0)使應用程序立即完成,而沒有調用諸如“ dealloc”之類的取消分配方法,我認為這不是一種好的編程風格。 因此,我想問大家,如何以一種“更巧妙”的方式完成應用程序。

提前致謝。

您真正想要的是不退出應用程序(不允許這樣做),而是告訴操作系統,您寧願殺死應用程序而不是使其后台運行。

為此有一個info.plist密鑰UIApplicationExitsOnSuspend。 將info.plist中的設置為TRUE(選中),然后當您的應用進入后台時,它將終止。

這是兩個問題:

  1. 如何以編程方式退出iPhone應用-重復

    退出iPhone應用程序的正確方法?

  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

上面的一個答案說:“為此,有一個info.plist密鑰UIApplicationExitsOnSuspend。將info.plist中的密鑰設置為TRUE(選中),然后當您的應用進入后台時,它將終止。” 在Xcode 4中,info.plist的值為Boolean類型的“應用程序不在后台運行”,因此將其設置為“是”將在用戶按下“主頁”按鈕時退出應用程序。

你是不允許的。 我從經驗中知道:蘋果退出了應用程序,因為我退出了(那是兩年半以前的事了,但我懷疑他們在這里改變了政策)。 在UIApplication,IIRC上有一個“私有”(即在頭文件中未提及)方法“終止”。 但是蘋果公​​司說你可能不會這樣做。 您唯一可以做的就是顯示一個對話框,要求用戶按“主頁”按鈕。 但是反過來,如果在啟用了多任務的設備上也無法正常工作...因此,我想您真的必須以一種可以更改狀態的方式更改應用程序,以使您可以放棄applicationDidEnterBackground上的狀態並重新啟動applicationDidBecomeActive上的應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM