场景:在一个只有WebView组件的Activity中如何正确处理页面的返回?

之前思路是覆写Activity的onBackPressed方法,因为用户触摸“返回键“会触发该方法;后来发现在三星,OPPO等机型手机上该方法并不执行,也就说该方法并不可取。

解决方法:通过覆写dispatchKeyEvent方法,从该方法中拦截返回键,再做处理,这种方法测试后感觉兼容性不错。

代码如下:

public class WebViewDemoActivity extends Activity {private WebView mWebview;@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);mWebview = (WebView)findViewById(R.id.layout_webview);//init webview param}@Overridepublic boolean dispatchKeyEvent(KeyEvent event) {//拦截返回键if (event.getKeyCode() == KeyEvent.KEYCODE_BACK){//判断触摸UP事件才会进行返回事件处理if (event.getAction() == KeyEvent.ACTION_UP) {onBackPressed();}//只要是返回事件,直接返回true,表示消费掉return true;}return super.dispatchKeyEvent(event);}@Overridepublic void onBackPressed() {if (mWebview != null) {//如果h5页面可能返回,跳转到上个页面if (mWebview.canGoBack()) {mWebview.goBack();} else {//不能返回上个页面,直接finish当前Activityfinish();}} else {finish();}}
}

Android-完美解决在Activity中触摸返回键onBackPressed不能触发问题相关推荐

  1. activity中fragment 返回键不退出_分享一波阿里Android客户端面经,我竟连这都答不上来?...

    今天整理了电脑,发现了几个月前总结了一半的阿里面经,想起来了去年秋招不愉快的阿里一面,今天分享给大家.希望大家前事不忘后事之师,吸取经验教训. 一面(挂) 1.点击图标,应用打开,点击home键,重新 ...

  2. activity中fragment 返回键不退出_优雅地处理加载中(loading),重试(retry)和无数据(empty)等...

    LoadSir是一个高效易用,低碳环保,扩展性良好的加载反馈页管理框架,在加载网络或其他数据时候,根据需求切换状态页面,可添加自定义状态页面,如加载中,加载失败,无数据,网络超时,占位图,登录失效等常 ...

  3. android自定义view获取控件,android 自定义控件View在Activity中使用findByViewId得到结果为null...

    转载:http://blog.csdn.net/xiabing082/article/details/48781489 1.  大家常常自定义view,,然后在xml 中添加该view 组件..如果在 ...

  4. python循环输入若干成绩_完美解决在oj中Python的循环输入问题

    完美解决在oj中Python的循环输入问题 这几天做题被python的循环输入问题给烦死了,好好查了一下,记录在此. while True: t= sys.stdin.readline().strip ...

  5. Android完美解决LaTeX中文显示问题

    Android完美解决LaTeX中文显示问题 一.目标 二.解决方案 三.测试数据 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 四.遗留问题 五.Next 六 ...

  6. js手机键盘遮挡_完美解决手机网页中输入框被输入法遮挡的问题

    之前要做一个弹出对话框,填写信息,发现在手机上看的时候,较后的输入框在填写信息时,输入框被输入法遮挡,只能盲填. 前提 1.弹出的对话框用display:fixed定位的 2.对话框大小固定 解决办法 ...

  7. python画不出来图是什么原因-完美解决ARIMA模型中plot_acf画不出图的问题

    问题描述:在画时间序列ACF时,调用 from statsmodels.graphics.tsaplots import plot_acf, plot_pacf plot_acf(data, lags ...

  8. php 重复写入数据,完美解决Thinkphp3.2中插入相同数据的问题

    问题描述 今天在使用TP3.2插入数据的时候,为了避免插入相同的数据(所谓相同的数据,其主键相同或者是唯一索引的字段相同),我创建的索引如下图,主键索引为自增字段,不可能出现重复,即唯一索引可能会出现 ...

  9. 解决Hbuilder打包的app返回键直接退出

    解决Hbuilder打包的app返回键直接退出 参考 https://blog.csdn.net/qq_25252769/article/details/76913083 解决打包成App后,单击 手 ...

最新文章

  1. 域内主机间之共享文件(夹)访问
  2. NeurIPS 2021 助力YOLOv5涨点 Alpha-IoU:IoU Loss大一统
  3. vim 打造属于自己的 IDE
  4. Transformer、BERT学习笔记
  5. python输出字体的大小_Toby的Python笔记 | 预备知识:安装openpyxl学做电子表格
  6. mapreduce文本排序_MapReduce:通过数据密集型文本处理
  7. Leetcode每日一题:155.min-stack(最小栈)
  8. java笔记之过滤器
  9. 韩语在线翻译图片识别_3个OCR文字识别工具,最后一个许多人都不知道!
  10. 使用SurfaceView完成地图无缝拼接
  11. 小米笔记本bios版本大全_聊一款被“差别对待”的笔记本电脑
  12. iis7 运行多个https,433端口监听多个htps 站点
  13. Hadoop专业解决方案-第5章 开发可靠的MapReduce应用
  14. pytest合集(5)— Function函数
  15. Matlab学习手记——非线性拟合方法:压缩因子粒子群算法
  16. 固态硬盘的计算机需要进行磁盘碎片整理吗,SSD固态硬盘需要碎片整理吗 固态盘切忌磁盘碎片整理...
  17. allegro PCB 检查报告中的Report DangLine以及禁用Antenna vias
  18. 《数据结构》XB专场(完)模块的引用与裁剪
  19. 如何对测试团队进行管理?我从5个方面总结了一下
  20. win10备份为wim_Win10 也能玩转一键还原

热门文章

  1. pythondir什么意思_Python之dir()与__dict__的区别
  2. 计算机一代的特点,计算机的特点_第一代计算机的特点
  3. lua和unity如何交互_Unity中C#对象与Lua之间交互的原理
  4. 苏州大学计算机考研复试经验,苏州大学计算机考研复试经验总结.docx
  5. Python只需要三十行代码,打造一款简单的人工语音对话
  6. 主题模型 LDA,Dirichlet分布 和朴素贝叶斯算法
  7. 时间序列预测方法汇总:从理论到实践(附Kaggle经典比赛方案)
  8. 多种数据形式下智能问答的应用解读
  9. 今晚直播 | 小米人工智能部崔世起:小爱同学全双工技术实践
  10. 变分推断(Variational Inference)最新进展简述