6

アプリを使用していて、新しいアクティビティを開いてから別のアクティビティを開いた場合、1つのアクティビティを使用してアクティビティを終了finish();できますが、2つのアクティビティを最初のアクティビティに戻すにはどうすればよいですか? ?私はあなたが使うことができることを知っています:

Intent savedGameIntent = new Intent(v.getContext(), firstclass.class);
v.getContext().startActivity(savedGameIntent);

しかし、それが最善の方法ですか?

4

2 に答える 2

7

それが元の活動に戻るのではなく、新しい活動を始めると私は信じています。最後と中間のアクティビティを終了したいようです。startActivityForResultを使用して最後のアクティビティを開始する場合は、途中のアクティビティでonActivityResultをオーバーライドし、そこからfinish()を呼び出すことができます。

于 2012-05-29T23:47:36.433 に答える
7

フラグIntent.FLAG_ACTIVITY_CLEAR_TOPを使用します。

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

ドキュメントから:

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

したがって、事実上、A-> B-> Cがあり、そのフラグを設定してAを意図している場合、BとCは閉じます。

于 2012-05-29T23:53:03.397 に答える