
Android webview多个页面goback无法销毁当前activity的处理
发布日期:2021-05-27 02:48:46
浏览次数:22
分类:精选文章
本文共 629 字,大约阅读时间需要 2 分钟。
在进行WebView相关操作时,返回逻辑的处理是开发者需要重点关注的部分。通过分析和优化,可以确保每一步操作都符合预期行为,避免不必要的页面关闭或其他潜在问题。
在原始代码中,goBack()方法直接调用finish(),这会立即终止当前Activity,并且由于WebView可能前一个页面已经加载完毕,直接完成后会导致上一个页面也被强制关闭,而非正常返回。这在长时间链导中会产生不合理的效果。
经过多次尝试和优化,最终的解决方案如下:
修改goBack方法逻辑:!以前直接调用finish()会导致不导致页面回退,正确的做法是通过WebView的内部控制返回,这样可以在满足返回条件的情况下正常回退,而不会强行关闭所有页面。
优化onBackPressed方法:在Activity的onBackPressed()方法中,检查WebView的可返回性,这是一个关键的逻辑应对步骤。这意味着当用户点击返回按钮应先检查WebView是否有可以回退的历史记录,若有则执行goback(),否则才会触发activity的关闭操作。
添加shouldOverrideUrlLoading方法:这个方法用于控制外部URL的加载行为,它会阻止不符合预期的URL加载。这可以防止不必要的页面跳转干扰用户体验,确保返回逻辑的独立性与完整性。
经过这些修改和优化,整个页面的返回逻辑会更加理性和稳定,用户点击返回按钮会正确处理页面回退而不是直接终止活动,避免了可能的状态失控。
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2025年04月17日 13时53分50秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【Stimulsoft Reports.Net教程】使用DesignerFx
2019-03-15
攻防世界 Pwn 新手
2019-03-15
mybtis-plus 出现 Wrong namespace
2019-03-15
升级java11后,maven命令打包报错
2019-03-16
springboot redis key乱码
2019-03-16
Win10禁用自带的笔记本键盘
2019-03-16
写时复制集合 —— CopyOnWriteArrayList
2019-03-16
什么是redis的缓存雪崩, 穿透, 击穿?
2019-03-16
【转载】DSP基础--定点小数运算
2019-03-16
idea thymeleaf页面变量报错解决
2019-03-16
云游戏,打响5G第一战
2019-03-16
Docker 拉取镜像速度太慢
2019-03-16
【毕设-STM32f103寄存器版本】智能防盗系统
2019-03-16
勒索病毒Kraken2.0.7分析
2019-03-16
MySQL错误1366处理方法
2019-03-16
驱动程序之_1_字符设备_13_USB设备_1_基本概念
2019-03-16
微机原理 6-计算机中常用的数制
2019-03-16
window系统下安装使用curl命令工具
2019-03-16