1

現在、スタックにいくつかのアクティビティがあります。想像してみましょう:

A、B、C、D、E。

私はアクティビティ E にいて、「上へのナビゲーション」によってアクティビティ A が前面に出て終了するはずです (B、C、D)。

私は現在働いています:

        case android.R.id.home:
            Intent intent = new Intent(this, ActivityA.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
            startActivity(intent);
            finish();
            return true; 

これはいいことです。アクティビティ A は以前の状態に戻りますが、(B、C、D) はまだ存在しています。

(B、C、D) を正しく終了する方法はありますか?

注:複雑なアプリケーション構造では処理できない onActivityResult のような複雑なものを避けるために検索しています

ありがとう。

4

2 に答える 2

1

これを試してください:

  case android.R.id.home:
        Intent intent = new Intent(this, ActivityA.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(intent);
        finish();
        return true; 
于 2013-08-04T09:44:16.650 に答える
0

FLAG_ACTIVITY_CLEAR_TOPはあなたが必要なものだと思います:

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

アクティビティ A の既存のインスタンスを ( 経由で) 再利用したい場合は、インテントでonNewIntent()設定する必要があるかもしれません。FLAG_ACTIVITY_SINGLE_TOP

于 2013-08-04T09:44:19.290 に答える