1

アプリケーションがあります。フローは-
スプラッシュ画面--->ホーム画面--->アイテムリスト画面--->アイテム詳細画面

私のアプリケーションでは、アイテムリスト画面アイテム詳細画面にホームボタン機能があります。

アイテムの詳細画面でホームボタンを押すと、ホーム画面に戻ります。これは予想される動作です。しかし、ホーム画面の戻るボタンを押すと、アイテムの詳細画面に戻ります(これは私が望まないものです

finish()を使用してアイテム詳細画面を強制終了しようとしましたが、アクティビティスタックの最後のアクティビティはアイテムリスト画面です。ホーム画面の[戻る]ボタンをクリックすると、アイテムリスト画面が表示されます。ユーザーがホーム画面を表示しているときにアクティビティスタックをクリアする方法はありますか?この点での助けは大歓迎です。

4

2 に答える 2

2

追加のインテントフラグを使用してホーム画面アクティビティを起動する必要があります。

// create intent
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);

これにより、ホーム画面アクティビティまでのアクティビティスタックがクリアされます。このアクティビティは、再作成されるのではなく、単に表示されます。また、これにより、ホーム画面のアクティビティが1つだけになることが保証されます。

于 2013-02-12T14:04:51.640 に答える
1

インテントフラグ FLAG_ACTIVITY_CLEAR_TOPを使用して、スタックをクリアします。

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

「ホームボタン」が押されたときにこのコードを呼び出す必要があります。

于 2013-02-12T14:02:52.273 に答える