如何在点击按钮上清除以前的活动?

时间:2016-02-19 16:32:57

标签: android android-activity

我发现有些人使用意图标记清除了android中以前的所有活动,但我想在用户点击按钮时清除之前的活动。任何人都帮助我,谢谢!,我已经看到其他堆栈溢流问题,没有解决方案适合我

3 个答案:

答案 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();

祝你好运。!