2014-01-05 76 views
1

我有我的應用程序中的數據庫,我想從用戶強制退出應用程序時從數據庫中刪除所有信息。我看了這個問題Which Event When i close app in iOS?,但當用戶點擊主頁按鈕,應用程序已強制退出applicationWillTerminate。我不想關閉我的應用程序。我只想在我的應用程序中發現關閉事件。當我「強迫退出」時,我怎樣才能得到關閉事件?

對不起,我的英語不好。 感謝您的意見和興趣。

+1

在大多數操作系統,迫使應用程序退出甚至沒有讓應用程序知道它是被殺害的,因爲它通常只在完成後的應用程序已經出軌了,不能再被信任正確運行。不過,不確定。 – cHao

回答

1

你不行。當您切換到背景時,您可以確定的最後一條通知是didEnterBackground。之後,無論是內存壓力還是用戶強迫你離開,你都可能會無聲無息地被殺死。

+0

如果iOS是一個有效的unix系統,它會調用一個信號處理程序,在退出之前 –

+0

我的應用程序正在從Web服務下載信息並插入數據庫。我有10個信息,我一個一個顯示用戶,但用戶強制退出應用程序在展會中,並再次打開。應用程序將下載其他信息並插入數據庫,在我的數據庫中,我將有20條信息,因此當用戶強制退出時我需要刪除信息。我怎樣才能做到這一點?或者你有其他建議嗎? –

+4

與其試圖控制關機過程(這是不可預知的),我會專注於啓動過程,並執行諸如清理數據庫以恢復已知良好狀態的操作。 – dpassage

2

的OBJC運行時將關閉沒有任何通知的最後

你可以寫一個POSIX信號處理得到信號。但請注意,由於運行時已經關閉,因此在這裏做很多工作是不安全的。

見,例如: http://chaosinmotion.com/blog/?p=423

+1

我不會這樣做,但它有可能... –

+0

有信號,不能被處理程序捕獲,如'SIGKILL'和'SIGSTOP'。 'SIGKILL'很可能是強制退出應用程序時使用的最後手段。 –