受信場所の更新を公開するなど、いくつかの目的で接続を維持するアプリケーションに取り組んでいます。Androidのやり方と他の回答からのアドバイスに従って、画面の回転時にアプリケーションを破棄して再作成するデフォルトのAndroidの動作をオーバーライドしていません。その点ではうまく機能します。
onRetainNonConfigurationInstance メソッドで接続を保持します。問題は、ユーザーがホームを押したとき、アプリケーションが最小化されたとき、または何らかの理由でフォーカスを失ったときに接続を閉じたいのですが、画面が回転したときではないため、onPause、onStop、または OnDestroy なしではこれを行うことができません。構成の変更時に次々に呼び出されるため、いくつかのチェック。現時点では、isFinishing() を使用してアプリケーションが閉じられているかどうかを確認していますが、ユーザーが Home を押した場合は、isFinishing() == true (これは理にかなっています) は必要ありません。
私が考えた1つの解決策は、アプリケーションが接続の更新を処理するスレッドにフォーカスを持っているかどうかを確認し、フォーカスがない時間が経過した場合は単純に閉じることですが、これを行うためのより良い方法が必要だと思いますか?
お時間をいただきありがとうございます。
(投稿された回答を読んだ後、アクティビティのライフサイクルとonRetainNonConfigurationInstanceに関して物事を明確にするために編集されました)