我发现有些人使用意图标记清除了android中以前的所有活动,但我想在用户点击按钮时清除之前的活动。任何人都帮助我,谢谢!,我已经看到其他堆栈溢流问题,没有解决方案适合我
答案 0 :(得分:0)
您需要使用此标志来清除活动顶部堆栈
Button mButton = (Button)findViewById(R.id.button_click);
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = getIntent();
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
}
});
答案 1 :(得分:0)
你可以这样做:
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(this, YourNewActivity.class);
MainActivity.this.finish(); //Use your current activity
startActivity(i);
}
});
或在清单文件中使用 android:noHistory="true"
<activity android:name=".YourNewActivity"
android:noHistory="true"/>
答案 2 :(得分:0)
可以使用以下代码行清除所有正在运行的活动。
例如,有许多屏幕正在运行,当用户点击任何页面上的注销时,应关闭所有活动并让用户返回登录屏幕。所以,当你按回来时,你将退出应用程序。
LoginActivity - &gt;活动1 - &gt;活动2 - &gt;活动3 - &gt;点击 退出 - &gt; LoginActivity [活动之间的所有活动都已关闭]
Intent next = new Intent(AnyActivity.this, LoginActivity.class);
// will close all the running activiities
next.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(next);
finish();
祝你好运。!