我正在调查我的应用程序在运行时创建的调试文件,并且看到一个奇怪的行为: 应用程序使用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