为了账号安全,请及时绑定邮箱和手机立即绑定

Android:清除活动堆栈

Android:清除活动堆栈

www说 2023-03-02 16:06:47
我有一个活动:Activity1,应该打开一次(第一次启动) Activity2,主屏幕。在第一次启动时在Activity1中做了一些事情之后,每次启动Activity2都应该打开。我有点想出了如何做到这一点,它工作得很好,但是当我按下手机上的“后退”按钮时,Activity1突然出现。那么我该如何解决呢?我应该清除堆栈还是什么?这是我的代码:活动 1:public class MainActivity extends AppCompatActivity {    Button but1;    EditText input1;    TextView error1;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.welcome_page);        if(getName("username")!=null){            Intent intent = new Intent(MainActivity.this, WelcomePageLast.class);            startActivity(intent);        }        ListenerOnButton();    }    public void ListenerOnButton(){        but1 = (Button)findViewById(R.id.welcome_page_button);        input1 = (EditText)findViewById(R.id.username_input);        error1 = (TextView)findViewById(R.id.name_error);        but1.setOnClickListener(                new View.OnClickListener() {                    public void onClick(View view){                        if (input1.getText().toString().length() < 2){                            error1.setText("Слишком короткое имя!");                        }else {                            error1.setText("");                            Intent intent = new Intent(MainActivity.this, WelcomePageLast.class);                            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK |Intent.FLAG_ACTIVITY_CLEAR_TOP);                            setName("username", input1.getText().toString());                            startActivity(intent);                        }                    }                }        );    }    public void setName(String key, String value){        SharedPreferences preferences = getSharedPreferences("preferences", MODE_PRIVATE);        SharedPreferences.Editor editor = preferences.edit();        editor.putString(key, value);        editor.apply();    }
查看完整描述

1 回答

?
翻阅古今

TA贡献1780条经验 获得超5个赞

它不会让你回到上次活动


Intent intent = new Intent(MainActivity.this, WelcomePageLast.class);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK |Intent.FLAG_ACTIVITY_CLEAR_TOP);

setName("username", input1.getText().toString());

startActivity(intent);

finish();

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)- 清除活动堆栈。如果您不想清除活动堆栈。请不要使用那个标志。


查看完整回答
反对 回复 2023-03-02
  • 1 回答
  • 0 关注
  • 86 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信