android中的finish()活动两次?

Wil*_* L. 3 android activity-finish android-activity

好的说你使用了一个应用程序,然后你打开了一个新的活动,然后打开了另一个活动,你可以通过使用finish();和后面的一个活动来结束你的活动,但你怎么能回到两个活动,一直回到第一个活动?我知道你可以使用:

Intent savedGameIntent = new Intent(v.getContext(), firstclass.class);
v.getContext().startActivity(savedGameIntent);
Run Code Online (Sandbox Code Playgroud)

但这是最好的方法吗?

hap*_*ave 6

我相信这会开始一项新的活动,而不是回到原来的活动。听起来您想完成最后和中间的活动。如果您使用 startActivityForResult 启动最后一个活动,那么您可以在中间活动中覆盖 onActivityResult,并从那里调用 finish()。


Ale*_*cas 6

使用标志Intent.FLAG_ACTIVITY_CLEAR_TOP.

  Intent intent = new Intent(this,A.class);
  intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
  startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

从文档:

如果已设置,并且正在启动的活动已在当前任务中运行,则不会启动该活动的新实例,而是将关闭其上的所有其他活动,并将此Intent传递给(现在开启) top)旧活动作为新的意图.

如此有效,如果您有A - > B - > C,并且您打算使用该标志设置A,则B和C将关闭.