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

原创不易

转载请标明出处

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

相关推荐
赏金术士4 小时前
Kotlin 习题集 · 高级篇
android·开发语言·kotlin
问心无愧05136 小时前
ctf show web 入门42
android·前端·android studio
没什么本事7 小时前
关于C# panel 添加lable问题 -- 明确X和Y 位置错误
android·java·c#
REDcker10 小时前
Android HWASan 详解:硬件标记原理、Clang 启用与排障实践
android·linux·debug·编译·clang·asan·hwasan
2501_9159090611 小时前
全面解析前端开发中常用的浏览器调试工具及其使用场景
android·ios·小程序·https·uni-app·iphone·webview
angerdream11 小时前
Android手把手编写儿童手机远程监控App之SQLite详解2
android
-SOLO-11 小时前
Python 爬取小红书 文章标题和内容 仅供学习
android·python·学习
ooseabiscuit11 小时前
Laravel5
android·php·laravel
科技道人12 小时前
Android 禁止使用ipv6 测试
android·禁用ipv6
AlexMaybeBot12 小时前
巧用 OpenClaw 为 Android 开发电脑瘦身
android·github·ai编程