0

私は現在、アクティビティの 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() メソッドに含まれるすべての行の実行が完了しない可能性があると聞きました。突然停止する可能性のあるメソッド内からデータ保存関数を実行したくありません!

ここで私の考えは間違っていますか?私の恐れは不合理ですか?もしそうなら、私は代わりに何をすべきですか?

ちなみに、これが私のアプリのスクリーンショットです。 1 2 3 4

4

1 に答える 1

0

ありがとう、ルクスプロ​​グ。少し読んだ後、アクティビティのライフサイクルをより信頼できるようになったと思います。onCreateで設定、onResumeで読み込み、onPauseで保存を実装していきます!うまくいけば、それは正しいです。

ここで必要なのは、アクティビティとフラグメントを設定する正しい方法についてのアドバイスだけです。新しいアクティビティを開始する時期と開始しない時期、またはフラグメントを使用する方が良いかどうかを決定するための一般的な経験則が必要です。

于 2013-09-09T01:33:15.377 に答える