我正在調查我的應用程序在運行時創建的調試文件,並且看到一個奇怪的行爲: 應用程序使用NSURLConnction
從服務器檢索一些數據。連接已啓動,然後用戶通過按主頁按鈕(application:willResignActive
和application:didEnterBackground
方法被調用)將應用程序移動到可能的背景。 在調用application:didEnterBackground
後,我可以看到在我的代碼中處理了連接。 (NSURLConnection
代表connectionDidFinishLoading
在application:didEnterBackground
之後被調用)。在執行connectionDidFinishLoading
時,我執行了一些操作,但此時應用程序可能被暫停並且代碼未被調用。 然後,用戶在將近12小時後再次啓動應用程序(未終止,但僅在後臺運行),並且代碼從停止運行的同一點繼續運行,即使在調用application:willEnterForeground
和application:didBecomeActive
之前)。 它是否使場景? 在應用程序進入前臺之前運行的代碼部分改變了我的應用程序內部狀態並導致奇怪的行爲。進入後臺後,應用程序是否繼續執行網絡操作?
任何想法如何解決它?
感謝您的回答。連接非常短,並在應用程序的5秒限制之前結束:didEnterBackground。我可以在調試文件中看到didEnterBackground被調用,然後幾毫秒後連接結束(didFinishLoading被調用) – user1513930 2012-08-14 04:55:38