Androidのライフサイクルモデルについての私の理解は、onPause()
呼び出されたときに、保存する必要のある状態を保存する必要があるということです。これは、戻った後はいつでもアプリが終了する可能性があるためです。私はジンジャーブレッドをターゲットにしているので、onStop
呼ばれることはないかもしれません。
ただし、私のアプリでは、いくつかの状態がリモートサーバーに保存されています。私は定期的にこの状態をフラッシュしますが、onPauseが呼び出された場合、正しいことはわかりません。onPauseが返されるとすぐに、アプリが強制終了される可能性があるためです。別のスレッドでandroidhttpリクエストを実行する必要があるため、これは問題があるようです。onPauseでリクエストを開始してから戻ると、状態を保存するリモートリクエストが完了する(または開始する)前にアプリが強制終了される可能性があります。
スリープ状態になってリクエストが機能するのを待つような同期をとるべきだと思っていますが、最初はonPauseでこれを実行できるかどうかわかりません。次に、onPauseはそれほど長くはかからないはずです。ネットワーク遅延がある場合、これも問題を引き起こす可能性があります。
状態をリモートサーバーにフラッシュする必要がある場合、または一般に別のスレッドを必要とする何らかの方法で状態をonPauseに保存するための推奨される方法はありますか?