我有一個應用程序,當終止時需要同步一個sqlite數據庫的內容。
要知道應用程序何時終止,我在應用程序委託的applicationWillTerminate:方法中放置了一個斷點。但調試器從不在那裏執行。
我知道兩種方法來終止應用程序:iOS模擬器:應用程序無法終止correcly
- 就像我在iPhone上做:保持觸摸應用程序圖標,直到它開始顫抖,我在點擊「X」;
- 停止調試器。
無這兩種方法導致調試步驟在applicationWillTerminate:我的應用程序委託的方法。
如果我用第一種方法我甚至得到一個異常:我收到SIGKILL就在這一行:
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
好像模擬器啓動SIGKILL即使沒有該信號的處理程序。
最後一條消息是mach_msg_trap。
閱讀文檔:「對於不支持後臺執行的應用程序或者與iOS 3.x或更低版本鏈接的應用程序,此方法總是在用戶退出應用程序時調用。對於支持後臺執行的應用程序,此方法通常不會在用戶退出應用程序時調用,因爲在這種情況下,應用程序只是移動到後臺,但是,在應用程序在後臺運行(未掛起)並且系統需要終止某些應用程序的情況下原因。」 –
@MikeWeller你應該把它作爲一個答案..... –
我太懶惰了:P –