You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android跳转MainActivity后如何处理返回键实现退出确认弹窗

实现方案

你现有LoginActivity的跳转逻辑已经将LoginActivity从应用返回栈中完全清除,MainActivity会成为返回栈内唯一的页面,因此只需要在MainActivity中添加返回键拦截逻辑即可实现需求,原有LoginActivity的跳转代码无需修改。

方案1:重写onBackPressed方法(兼容全版本)

直接在MainActivity中添加如下重写方法即可:

@Override
public void onBackPressed() {
    new AlertDialog.Builder(this)
            .setMessage("您确定要退出应用吗?")
            .setPositiveButton("确定", (dialog, which) -> {
                // 关闭当前页面后栈为空,直接退出应用
                finish();
                // 如需彻底关闭应用所有页面可替换为 finishAffinity();
            })
            .setNegativeButton("取消", null)
            .show();
}

方案2:使用OnBackPressedCallback(AndroidX推荐写法)

如果你的项目适配AndroidX,更推荐使用官方推荐的返回回调方式,在MainActivity的onCreate方法中注册回调即可:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    OnBackPressedCallback backCallback = new OnBackPressedCallback(true) {
        @Override
        public void handleOnBackPressed() {
            new AlertDialog.Builder(MainActivity.this)
                    .setMessage("您确定要退出应用吗?")
                    .setPositiveButton("确定", (dialog, which) -> finish())
                    .setNegativeButton("取消", null)
                    .show();
        }
    };
    getOnBackPressedDispatcher().addCallback(this, backCallback);
}

内容的提问来源于stack exchange,提问作者muhammedlevent

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 03:54:10