【发布时间】:2012-08-12 12:48:13
【问题描述】:
我正在查看我的应用程序在运行时创建的调试文件并看到一个奇怪的行为:
该应用程序使用NSURLConnction 从服务器检索一些数据。连接已启动,然后用户可能通过按下主页按钮将应用程序移至后台(调用了application:willResignActive 和application:didEnterBackground 方法)。
我可以看到在调用application:didEnterBackground 之后,我的代码中处理了连接。 (NSURLConnection 代表的 connectionDidFinishLoading 是在 application:didEnterBackground 之后调用的)。在connectionDidFinishLoading 的实现中,我执行了一些操作,但此时应用程序可能已挂起并且没有调用代码。
然后在将近 12 小时后,用户再次启动应用程序(它没有终止,而只是在后台)并且代码从它停止的同一点继续运行,甚至在调用 application:willEnterForeground 和 application:didBecomeActive 之前)。
它会做场景吗?
在应用程序进入前台之前运行的部分代码改变了我的应用程序内部状态并导致奇怪的行为。
有什么办法解决吗?
【问题讨论】:
标签: iphone ios xcode nsurlconnection uiapplicationdelegate