如果我有各种活动 - A,B,C,D,E,F。
a A打开B,B打开C,C打开D,依此类推A-> B-> C-> D-> E-> F。
目前我在开幕后的所有活动中都参加了F活动。
现在我想从F开始进行B活动而不关闭A但关闭所有活动(C,D,E,F)。请告诉我们如何做到这一点?
答案 0 :(得分:1)
试试这个。
答案 1 :(得分:0)
在这种情况下,你必须使用Intent.FLAG_ACTIVITY_CLEAR_TOP
Intent intent - new Intent(this, B.class);
intent.setFlag(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
来自文档:
int FLAG_ACTIVITY_CLEAR_TOP
如果设置,则正在启动的活动已在运行中 当前任务,然后而不是启动它的新实例 活动,其上的所有其他活动将被关闭 这个意图将作为一个传递到(现在在顶部)旧活动 新的意图。
答案 2 :(得分:0)
您应该使用MainActivity和多个片段进行这些操作。
首先,创建一个Fragment容器(基本上,一个可以容纳Fragment的视图,您可以随时从MainActivity更改该Fragment)。
您的MainActivity的XML布局:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
然后在MainActivity中更改容器中的片段,如下所示:
// Create a new Fragment to be placed in the activity layout
YourFragment firstFragment = new YourFragment();
// In case this activity was started with special instructions from an
// Intent, pass the Intent's extras to the fragment as arguments
firstFragment.setArguments(getIntent().getExtras());
// Add the fragment to the 'fragment_container' FrameLayout
getSupportFragmentManager().beginTransaction()
.add(R.id.fragment_container, firstFragment).commit();