好吧,说你使用一个应用程序,你打开了一个新的活动,然后又打开了另一个,你可以通过使用finish();
和你的一个活动结束你的活动,但是你怎么能回到两个活动,一直回到第一个活动? 我知道你可以使用:
Intent savedGameIntent = new Intent(v.getContext(), firstclass.class);
v.getContext().startActivity(savedGameIntent);
但这是最好的方法吗?
好吧,说你使用一个应用程序,你打开了一个新的活动,然后又打开了另一个,你可以通过使用finish();
和你的一个活动结束你的活动,但是你怎么能回到两个活动,一直回到第一个活动? 我知道你可以使用:
Intent savedGameIntent = new Intent(v.getContext(), firstclass.class);
v.getContext().startActivity(savedGameIntent);
但这是最好的方法吗?
使用标志 Intent.FLAG_ACTIVITY_CLEAR_TOP。
Intent intent = new Intent(this,A.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
从文档中:
如果设置,并且正在启动的活动已经在当前任务中运行,那么不会启动该活动的新实例,而是关闭它上面的所有其他活动,并且此 Intent 将被传递到(现在顶部)作为新意图的旧活动。
如此有效,如果您有 A -> B -> C,并且您打算使用设置了该标志的 A,B 和 C 将关闭。
我相信这将开始一项新的活动,而不是回到原来的活动。听起来你想完成最后和中间的活动。如果您使用 startActivityForResult 启动最后一个活动,则可以在中间活动中覆盖 onActivityResult,并从那里调用 finish()。