在我的应用程序中,我在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,它不会退出应用程序。 我该如何清除它? 请帮帮我。
答案 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)
类似的东西:
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。
如果您不理解我的答案,那么只需发布您的整个代码......我将编辑...