0

Android の初心者として、アクティビティのライフサイクルについて疑問に思い始めました。人のリストを読み込んで表示するアクティビティがあります。人をクリックすると、その人の詳細を表示する別のアクティビティを開きたいです。私は現在、「PersonDetailActivity」にインテントを作成してこれを行っています。ここまでは順調ですね。PersonDetail ページで、Person リストに戻るためのメニュー アクションが必要です。私は再び同じ手法を適用しました。つまり、PersonListActivity に戻るインテントを意味します。

ここで、PersonListActivity に戻ることが何を意味するのか疑問に思い始めました。新しいインスタンスが作成され、リストに表示される人物をリロードする必要がありますか? リストを再度リロードせずに、同じインスタンスに戻ることができますか? 次に、他のアクティビティへのインテントを介して自分自身へのポインターを渡す必要がありますか?

したがって、いつ意志とアクティビティが再インスタンス化され、いつ再インスタンス化されないか。ヒントや提案は大歓迎です。おそらく、私がまだ気づいていないこれらの前後のメニュー アクションに適用されるいくつかのパターンがあるでしょう。

ありがとう、

ヴィンセント

4

2 に答える 2

1

はい、、。finish()新しいアクティビティを開始する代わりに、2 番目のアクティビティを呼び出します。

基本的に、すべてのアクティビティを開始順に格納するアクティビティ スタックと呼ばれるものがあります。したがって、新しいアクティビティを開始すると、それがスタックの一番上にあり、前のアクティビティがその下に置かれます。終了を呼び出すと、アクティビティがポップアウトされます。 .

finish()今まで行っていた正しいことを呼び出したくない場合はACTIVITY_CLEAR_TOP、最初のアクティビティのマニフェストにフラグを追加します。

于 2012-04-18T07:51:45.007 に答える
0

finish()基本的に、あなたがあなたのメソッドを呼び出すだけならPersonDetailActivity

PersonDetailActivity.this.finish();

完成したアクティビティの一番上にあるアクティビティからメソッドをアクティブにしonResume()ます。これがPersonsActivityになります。onResume()そこに戻るときに実行する操作をメソッドで指定できます。

于 2012-04-18T07:56:49.920 に答える