Android 回退页面不是上个页面

问题

Android 回退页面不是上个页面

详细问题

笔者进行Android 开发,点击返回上一层,显示页面不是上个页面,而是之前的某个页面

页面跳转代码

java 复制代码
    private void navigateToActivity(Context context, Class<?> targetActivityClass) {
        Intent intent = new Intent(context, targetActivityClass);
        startActivity(intent);

        // 确保调用finish(),以便在启动新Activity后关闭当前Activity(可选)
        finish();
    }

解决方案

修改页面跳转代码,删去finish();

java 复制代码
    private void navigateToActivity(Context context, Class<?> targetActivityClass) {
        Intent intent = new Intent(context, targetActivityClass);
        startActivity(intent);
    }

产生原因

问题产生的原因是在页面跳转时调用了 finish() 方法,该方法会销毁当前的 Activity,并从堆栈中移除。因此,当用户在新的页面中点击返回按钮时,会返回到之前的页面,而不是上一个页面。

在 navigateToActivity() 方法中,调用了 finish() 方法,这会导致当前的 Activity 被销毁。因此,当用户点击返回按钮时,系统会从堆栈中寻找上一个页面,但上一个页面已经被销毁,所以系统会返回到之前的某个页面。

解决原因

要解决这个问题,可以简单地删去 navigateToActivity() 方法中的 finish() 方法调用。这样,在启动新的 Activity 后,当前的 Activity 将保持在堆栈中,当用户点击返回按钮时会返回到正确的上一个页面。

参考文献

产生原因与解释原因部分 部分内容参考chatgpt

原创不易

转载请标明出处

如果对你有所帮助 别忘啦点赞支持哈

相关推荐
子非衣8 分钟前
MySQL修改JSON格式数据示例
android·mysql·json
openinstall全渠道统计3 小时前
免填邀请码工具:赋能六大核心场景,重构App增长新模型
android·ios·harmonyos
双鱼大猫4 小时前
一句话说透Android里面的ServiceManager的注册服务
android
双鱼大猫4 小时前
一句话说透Android里面的查找服务
android
双鱼大猫4 小时前
一句话说透Android里面的SystemServer进程的作用
android
双鱼大猫4 小时前
一句话说透Android里面的View的绘制流程和实现原理
android
双鱼大猫5 小时前
一句话说透Android里面的Window的内部机制
android
双鱼大猫5 小时前
一句话说透Android里面的为什么要设计Window?
android
双鱼大猫5 小时前
一句话说透Android里面的主线程创建时机,frameworks层面分析
android
苏金标6 小时前
android 快速定位当前页面
android