亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

applicationWillTerminate什么時候調用,什么時候不調用

applicationWillTerminate什么時候調用,什么時候不調用

肥皂起泡泡 2019-10-30 10:35:14
嗨,我已經閱讀了關于applicationWillTerminate被調用和未被調用的幾個問題。我想總結一下我的理解,因為有幾篇文章講的不同。對于IOS(無多任務),總是在按下主頁按鈕時調用它。對于IOS 4及更高版本一種。按下主屏幕按鈕時不會調用它(因為應用程序移至后臺)b。當從多任務擴展塢中關閉應用程序時調用該方法,并且如果該應用程序在info.plist中禁用了突然終止標志,則不會調用它。(我設置了“應用程序應獲取App Died事件”,即使在從多任務擴展塢中關閉應用程序時,也沒有調用終止函數)基于此,我有幾個問題設置應用程序應獲取“ App Died”事件標志是一種好習慣嗎?(我設置了“應用程序應獲取App Died事件”,即使在從多任務擴展塢中關閉應用程序時,也沒有調用終止函數)要么與“ info.plist”設置相比,注冊“ UIApplicationWillTerminateNotification”更好嗎?基本上,我只需要在應用終止時才需要做一些工作,而不必在它移到后臺時才需要做。要么編輯(1):應用終止后,以下內容將發送到該應用。我怎么抓到它?程序收到信號:“ SIGKILL”。編輯(2):請注意:從多任務擴展塢中卸下時,它在IOS 4及更高版本中不會被調用。您可能以為是。但就我而言,事實并非如此。我問是否有人知道為什么?還有其他我想念的東西嗎?另請注意,我設置了“應用程序應獲取應用程序死亡事件”,即使這樣它也沒有被調用。編輯(3):以下問題的答案也無效。 applicationWillTerminate不被調用有人面臨與我類似的問題嗎?
查看完整描述

3 回答

?
收到一只叮咚

TA貢獻1821條經驗 獲得超5個贊

簡而言之,除非您UIApplicationExitsOnSuspend在Info.plist中將其設置為YES ,否則在iOS4及更高版本中,無法保證applicationWillTerminate:會被調用。


如文檔所述:


對于支持后臺執行的應用程序,當用戶退出應用程序時通常不會調用此方法,因為在這種情況下,應用程序只是移至后臺。然而,這種方法可以在其中應用程序在背景中(未暫停)運行情況被調用,該系統需要終止它由于某種原因


(強調我的。)


如果您需要在應用退出之前執行某些操作,則需要在中執行操作applicationDidEnterBackground:。無法捕捉SIGKILL。


查看完整回答
反對 回復 2019-10-30
?
縹緲止盈

TA貢獻2041條經驗 獲得超4個贊

據我所知,您的應用程序將在3種情況下死亡。

  1. 在最終用戶終止后,您可以在中做某事-[UIApplication applicationWillEnterBackground:],在這種情況下,-[UIApplication applicationWillTerminate:]將不會調用。

  2. 被系統丟棄,例如內存不足,您可以在中做某事-[UIApplication applicationWillTerminate:],在這種情況下,我們不知道是否applicationWillEnterBackground:已被調用;

  3. 崩潰了,只能使用某種崩潰報告工具來完成。(編輯:捕捉SIGKILL是不可能的)


查看完整回答
反對 回復 2019-10-30
  • 3 回答
  • 0 關注
  • 604 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號