0

アプリには 3 つのアクティビティがあります。

ホーム -> 一覧 -> 詳細

詳細アクティビティにいるとき、ホーム アクティビティにリダイレクトして他のアクティビティを閉じるホーム ボタンが必要です。次に、このコードを試しました:

Intent intent = new Intent(this, HomeActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

以来FLAG_ACTIVITY_CLEAR_TOP

設定されていて、起動されているアクティビティが現在のタスクで既に実行されている場合、そのアクティビティの新しいインスタンスを起動する代わりに、その上にある他のすべてのアクティビティが閉じられ、このインテントがに配信されます (現在上)新しいインテントとしての古いアクティビティ。

私は欲しいものを手に入れましたが、それでもonCreateに行きます。ホームを起動し、そのonCreateに行かない方法はありますか?

4

2 に答える 2

1

あなたの考え方と Android の考え方は、まだ完全には互換性がありません。;)

「ホームを起動する」とは、それが起動されることを意味し、作成されることを意味します。

ただし、Activity.startActivityForResult()startListおよび を使用することはできDetailます。次に、「ホーム」ボタンがアクティビティになりfinishますDetail。のonActivityResultコールバックではList、を使用して通過するだけActivity.finish()で、onActivityResultオブでHomeはイベントをキャッチして、戻ってきたことを知ることができます。

于 2013-04-30T15:04:48.740 に答える
0

Activityライフサイクルを制御することはできません。どのアクティビティを実行し続け、どのアクティビティを終了するかは、Android 次第です。これは、Activity がフォーカスを失ったときに、必ずしも破棄または閉じられるとは限らず、単にフォーカスを失って実行を続ける可能性があることを意味します。これは Android 次第です。この動作を制御することはできません。

特定の状態の を復元する場合Activityは、必要なすべてのデータを保存し、 で復元する必要がありますonCreate()

于 2013-04-30T15:04:28.067 に答える