打开许多活动时去拳头活动

时间:2016-02-18 06:44:20

标签: android

在我的应用程序中,我在ManiActivity.class中有两个片段。 在我的片段中,我有一个列表视图,当我单击列表中的项目时,我打开MainActivity2.class。在MainActivity2.class中我有listview相关,当我点击列表相关时,我用新值打开MainActivity2.class。现在我想在MainActivity2.class中创建一个回到主页的按钮,当我点击相关列表时打开许多MainAcitivty2.class我可以点击回到主页的按钮转到MainActivity2.class 我试试

Intent intent = new Intent(MainActivity2.this,MainActivity.class)
startIntent(intent)

但是当我点击MainActivity.class中的后退按钮时,它会混合使用MainActivity2.class,它不会退出应用程序。 我该如何清除它? 请帮帮我。

4 个答案:

答案 0 :(得分:0)

AndroidManifest.xml 中使用android:launchMode="singleTask"进行MainActivity。

如果再次启动,它将仅保留一个MainActivity实例,此活动将位于堆栈顶部。 并使用此代码

Intent intent = new Intent( MainActvity2.this, MyActivity.class );
intent.setFlags( Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP );
current_activity.startActivity( intent );

答案 1 :(得分:0)

这就是Android维护堆栈中每个活动的状态的原因,这就是为什么当您按下该按钮时,您只需清除堆栈中的所有先前活动,然后打开MainActivity

只需在开始意图之前设置标志:

Intent intent = new Intent(MainActivity2.this,MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();

答案 2 :(得分:0)

startIntent

后的call finish方法

类似的东西:

Intent intent = new Intent(MainActivity2.this,MainActivity.class);
startIntent(intent);
finish();

并在您的活动中加入完成方法

@Override
public void finish() {
    super.finish();
}

答案 3 :(得分:0)

非常简单..使用finish();

Intent intent = new Intent(MainActivity2.this,MainActivity.class);
startIntent(intent);
finish();

bcz你在mainActivity2中创建多个活动。所以在你去mainActivty之前你必须破坏你的活动。

否则当你在mainactivity2中打开新的很多时。那个时候使用完成.. bcz你必须先破坏你的mainActivity2。

如果您不理解我的答案,那么只需发布您的整个代码......我将编辑...