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

Android从CategoryAddActivity返回时意外退出登录的解决方法

Android从CategoryAddActivity返回后自动退出登录的问题解决

问题根源

你的问题出在DashboardAdminActivity启动CategoryAddActivity时的代码逻辑:启动新页面后调用了finish()方法,这会直接销毁当前的DashboardAdminActivity并将其从Activity栈中移除。当你在CategoryAddActivity点击返回按钮时,Activity栈中已经没有DashboardAdminActivity,系统会跳转至更早的MainActivity,从而出现“账号退出”的错觉。

解决方案

修改DashboardAdminActivity中启动CategoryAddActivity的代码,移除finish()调用:

原代码

binding.addCategoryBtn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        startActivity(new Intent(DashboardAdminActivity.this,CategoryAddActivity.class));
        finish(); // 此方法导致DashboardAdminActivity被销毁
    }
});

修改后代码

binding.addCategoryBtn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        startActivity(new Intent(DashboardAdminActivity.this,CategoryAddActivity.class));
        // 移除finish(),保留DashboardAdminActivity在Activity栈中
    }
});

原理说明

Android通过栈结构管理Activity:默认启动新Activity时,新页面会被压入栈顶,原页面保留在栈内。调用finish()会销毁当前Activity并将其从栈中移除。移除该方法后,DashboardAdminActivity会留在栈里,从CategoryAddActivity返回时,栈顶的CategoryAddActivity被弹出,DashboardAdminActivity会直接回到前台,不会跳转至MainActivity。

额外确认

CategoryAddActivity中的返回按钮逻辑是正确的:调用onBackPressed()是系统默认的返回行为,无需修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 13:20:28