アプリケーションが実行中に作成するデバッグ ファイルを調べていたところ、奇妙な動作が見られました。アプリケーションはNSURLConnction
、サーバーからデータを取得するために使用します。接続が開始された後、ユーザーがホーム ボタンを押してアプリケーションをバックグラウンドに移動した可能性があります (application:willResignActive
メソッドapplication:didEnterBackground
が呼び出されました)。application:didEnterBackground
が呼び出された後、コードで接続が処理されていることがわかりました。(デリゲートの は の後に呼び出されましたconnectionDidFinishLoading
) 。の実装ではいくつかの操作を実行しますが、この時点でアプリケーションはおそらく中断され、コードは呼び出されませんでした。その後、ほぼ 12 時間後にユーザーがアプリケーションを再度起動し (アプリケーションは終了せず、バックグラウンドでのみ実行されました)、コードは停止した時点から実行を続けました。NSURLConnection
application:didEnterBackground
connectionDidFinishLoading
application:willEnterForeground
とapplication:didBecomeActive
呼ばれた)。それはシーンを作りますか?アプリケーションがフォアグラウンドに入る前に実行されていたコードの一部が、アプリケーションの内部状態を変更し、奇妙な動作を引き起こしました。
それを解決する方法はありますか?