私は現在、アクティビティの onCreate() メソッドを、最初に実行するインテントをキャプチャするように設定しています。インテントには、アクティビティが何をすべきかを決定する追加の int "ACTIONCODE" が常に含まれます。
アクティビティ A は、アクティビティ Z に初めて変数を設定させたい場合があるため、追加の int ActivityZ.SET_UP_FIRST_TIME (アクティビティ Z の定数) を持つ startActivity(includedIntent) を呼び出します。ビットなので、追加の int ActivityZ.CHANGE_VARIABLES と、これらの変数を変更するための他のデータを含む意図で startActivity(includedIntent) を実行します。
アクティビティ Z は、その変数が何であるかを表示する一連のテキストビューである可能性があります。getIntent() から受け取った ACTIONCODE に応じて、必要に応じて処理を実行します。
これを行うことで、アプリ内のアクティビティをより細かく制御できるようになった気がしますが、本当に単純で非効率的な実装ではないかと心配しています。私は基本的に、onStart()、onResume()、onPause()、および onStop() を信頼していません (または完全に理解していません)。私が聞いたところによると、アクティビティが常に onResume() に戻るという保証はありません。onPause() または onStop() 状態にある間、システムによって強制終了または完全に破棄される可能性があり、そのため onCreate() に再び戻るだけでした。私が信頼している唯一の方法です。
onCreate() からのすべてのデータ保存も行います。なんで?アクティビティが onPause() または onStop() にある場合、強制終了される可能性があり、オーバーライドされた onPause() または onStop() メソッドに含まれるすべての行の実行が完了しない可能性があると聞きました。突然停止する可能性のあるメソッド内からデータ保存関数を実行したくありません!
ここで私の考えは間違っていますか?私の恐れは不合理ですか?もしそうなら、私は代わりに何をすべきですか?
ちなみに、これが私のアプリのスクリーンショットです。