2011-04-28 155 views
3

我想知道如何檢測應用程序即將被終止。我的意思是真正終止,而不是進入後臺模式。我已經使用這個事件,它不火:iOS4:應用程序終止事件?

applicationWillTerminate

什麼我真的想實現的是獲得某種事件或通知當用戶點擊首頁兩次並按下紅色氣球在應用程序上。我不在乎應用程序進入後臺模式,有幾個事件可以正確處理這些事件,並且它們都可以正常工作。

我需要這個,以便我可以「通知」我的服務器停止發送推送通知給APNS,以終止並且不在後臺運行的應用程序。

如果你知道一個更簡單的方式來實現這一點,我會很高興聽到:)

謝謝

回答

1

天使,你要求的東西不能做。該應用將以SIGKILL終止。不可阻擋,不可捕捉,沒有通知。系統啓動的終止或用戶請求的終止沒有區別。

只有當您的應用程序不支持後臺處理時,纔會獲得applicationWillTerminate。

0

IIRC它是這樣的:

在啓動:

  • didFinishLaunchingWithOptions
  • applicationDidBecomeActive

按HOME鍵:

  • applicationWillResignActive
  • applicationDidEnterBackground

從主屏幕說回:

  • applicationWillEnterForeground
  • applicationDidBecomeActive

applicationWillTerminate當您的應用程序由於某個調用而退出或由於某種原因致使操作系統死機時調用它。

1

從對此事UIApplicationDelegate文檔:

對於支持 後臺執行的應用程序,這種方法是 一般不叫當用戶 退出應用程序,因爲 應用程序只需移動到 背景那種情況。但是,此方法可能會在 的情況下調用,其中應用程序在 中運行的背景(未暫停)和 系統需要終止某些 原因。

在我看來,除非你的後臺進程在後臺主動執行某些操作(而不是暫停),否則applicationWillTerminate方法將永遠不會被調用。

我想這取決於你對「在後臺」的定義是什麼。

+0

我們在後臺激活(運行),並沒有得到「applicationWillTerminate」。看到我的答案。 – 2011-04-28 22:40:29

+0

看起來就是這樣,謝謝史蒂夫,謝謝大家。 – 2011-04-29 09:13:51