2012-09-11 80 views
-3

在我使用它的應用程序中,我需要從代碼中關閉它。我正在使用exit(0)iOS退出(0)奇怪的行爲

是的,我知道,我應該從代碼

不關閉程序。當我以這種方式關閉應用程序,然後再次運行它,有一些奇怪的behaviur - 應用程序不啓動,也從飛濺屏幕,就像新的應用程序實例,既不是從最後一個視圖看,也不像應用程序從背景轉回。

取而代之的是,我的應用程序出現一秒鐘一些隨機的,非交互式的視圖,並在此啓動畫面開始運行之後。

我很困惑,因爲我找不到源代碼,以及如何修復這個醜陋的錯誤。你可以幫我嗎?

+2

如何解決呢?不要退出代碼。 –

+0

[這裏](http://stackoverflow.com/a/12195593/1603234)是一個答案,如果你想退出應用程序! – Hemang

+0

謝謝你的答案,但正如我寫的 - 我知道**,我不應該使用退出(0) - 告訴我不要這樣做不是我期望的答案:) – Thaven

回答

6

這正是exit(0)的問題。你會得到奇怪的多任務行爲和各種其他問題。

你根本無法在代碼中終止你的應用程序。你應該向我們解釋爲什麼你認爲你需要退出編程,所以我們可以幫助你找到一個替代解決方案。

+1

這是正確的,所有的UIApplicationDelegate生命週期方法都會被跳過,因此可能會有很多內置的功能正在跳過(例如,當您從背景回來時顯示當前應用的屏幕截圖,這聽起來類似於你看到了) – wattson12

+0

@ wattson12 - 謝謝你的回答 - 你是唯一真正回答我的問題的人。你可以複製你的評論作爲答案,所以我可以接受它嗎? 如果我對決定有任何影響,我不會做任何應用程序終止... – Thaven

+0

@Thaven我認爲Parags的答案真的是一樣的,它和我的基本相同,並且有我從 – wattson12

5

Technical Q&A QA1561
沒有提供用於正常終止iOS應用程序的API。

不要致電出口函數。調用退出的應用程序將出現 ,使用戶崩潰,而不是執行優雅 終止和動畫回到主屏幕。
此外,數據可能無法保存,因爲 -applicationWillTerminate:如果你調用exit和類似UIApplicationDelegate方法將不會被調用 。如果在開發或測試 時有必要終止您的應用程序,中止函數或 聲明宏被推薦。

0

而不是

exit(0) 

試試這個:

[[UIApplication sharedApplication] performSelector:@selector(terminateWithSuccess)]; 
+0

是不是私人API? – Thaven

+3

這是但你的應用程序可能會被拒絕的方式:) – Stefan