0

スタックから特定のアクティビティを再開する可能性はありますか? たとえば、アクティビティ a、b、c の順に開いたとします。新しい活動を始めている間、私は a と b を終わらせません。オーバーライドせずに戻るボタンを押すと、もちろん今すぐ B に移動します。

しかし、スタック内の位置に関係なく、A または B を開くためのボタンまたは戻るボタンを提供したいと考えています。これは、アクティビティを終了することで達成できます (b を終了し、C から戻るボタンを押すと、A に移動します)。しかし、いくつかの活動は終わらせたくない。

私は調査しましたが、これを達成する方法を見つけることができませんでした。これは可能ですか?

もちろん、アクティビティがアクティブであるかどうかを確認する必要があります。アクティビティがアクティブである場合は、再度開くか、そうでない場合は開きます。

4

2 に答える 2

7

明らかに、どのロジックActivityを開きたいのかを理解する必要がありますが、これで探しているものが達成されるはずです

@Override
public void onBackPressed()
{
    super.onBackPressed();
    Intent intent = new Intent(CurrentActivity.this, ActivityYouWant.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
    startActivity(intent);
}

これがあなたが探していたものでない場合はお知らせください。

国旗

于 2013-04-08T13:28:27.563 に答える
1

codeMagicが提案した方法では、Activity スタックで必要以上のアクティビティを生成することができます。これにより、メモリ リークやその他の不適切な動作が発生する可能性があります。あなたは見てみる必要があります:

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.setFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);

またはさらに良いfinish()あなたのActivities

于 2014-01-29T22:43:27.870 に答える