android集成Crosswalk内核,屏蔽返回键问题。
前言:我们项目要求的返回逻辑是,在Xwalkview里面所有的页面点击物理返回键,都会执行双击退出的功能,所以,如果你们项目要求的不是这样的,那么这篇博文对你没什么大的用处,不过可以相互学习下哈!
Crosswalk的好处,我就不在这里赘述了,比原生的WebView的性能不知道提升了多少倍,原生中的不兼容的布局问题,在Crosswalk里面根本不存在(因为我们项目中用到了语音连读的功能,这个功能 在三星某款手机中,还是有问题的),等等很多好处,当然也不是完美的,比如,如果出问题的话,可以参考的资料还是有限的,大家就自己取舍一下吧;
------------------------进入正题------------------------------
1,集成Crosswalk的步骤,我也不说了,网上一大堆,基本上都可以集成成功的,也不是很复杂;
2,集成之后,你就会发现性能真的提升了不止一点点,但是 如果你点击物理返回键,你会发现,他是会不用你写逻辑,而自己去执行网页的跳转的,这一点我觉得Crosswalk做的还是很好的,但是就如我刚才说的,我们的项目要求是无论在Xwalkview里面的哪一个页面,双击物理返回键都得退出的,那么这时候就出现问题了,一般我们会直接去onKeyDown里写一些逻辑,比如:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_BACK) {//双击退出的逻辑代码return true;}return super.onKeyDown(keyCode, event);
}
上面这一段代码就是无论在哪一个页面,双击back直接退出的,但是测试的时候 你会发现,现实并不是想象的那样,Xwalkview还是会在你按下返回键的时候执行跳转到上一个页面的方法,这也不是我们要的,所以这个方法不行;
3,第二个方法就有点麻烦,重写Xwalkview的dispatchKeyEvent方法,判断如果是返回的话,直接屏蔽掉,这个方法还是比较靠谱的,接下来就是代码了:
a,需要一个继承自Xwalkview的类,名字叫MyXwalkview
import android.app.Activity;
import android.content.Context;
import android.util.AttributeSet;
import android.view.KeyEvent;import org.xwalk.core.XWalkView;public class MyXwalkview extends XWalkView{public MyXwalkview(Context context) {super(context);}public MyXwalkview(Context context, AttributeSet attrs) {super(context, attrs);}public MyXwalkview(Context context, Activity activity) {super(context, activity);}@Overridepublic boolean dispatchKeyEvent(KeyEvent event) {if (event.getKeyCode() == KeyEvent.KEYCODE_BACK){return false;}return super.dispatchKeyEvent(event);}}
b,然后在你使用的地方,将原来的Xwalkview换成MyXwalkview的绝对路径,在你使用的地方将类也改掉。
c,然后在你的MainActivity中的onKeyDown方法里这么写:
@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_BACK){exitByDoubleClick();return true;}return super.onKeyDown(keyCode, event);}
这就OK了!
android集成Crosswalk内核,屏蔽返回键问题。相关推荐
- 【Android】Android中屏蔽返回键,home键以及其他实体按键
屏蔽键重写activiy的两个方法就行 屏蔽返回键 public boolean onKeyDown(int keyCode, KeyEvent event) { switch (keyCode) { ...
- Android 屏蔽返回键、菜单键和Home键
//重写 public void onAttachedToWindow ( ) { this . getWindow ( ) . setType ( WindowManager. ...
- android 屏蔽实体按键,Android中屏蔽返回键,home键以及其他实体按键
屏蔽键重写activiy的两个方法就行 屏蔽返回键 public boolean onKeyDown(int keyCode, KeyEvent event) { switch (keyCode) { ...
- 直播源码开发,Android 屏蔽返回键(后退键)
直播源码开发,Android 屏蔽返回键(后退键) 方案一 在Activity中重写onBackPressed方法(推荐使用). @Override public void onBackPressed ...
- Android 拦截或屏蔽返回键
在Android开发中我们常常会遇到需要拦截或屏蔽返回键的需求,对拦截后的返回键进行特殊操作. 监听返回键有两种方式 1.重写OnBackPressed方法 @Overridepublic void ...
- android屏蔽返回键和Home键
//屏蔽返回键的代码: public boolean onKeyDown(int keyCode,KeyEvent event) {switch(keyCode){case KeyEvent.KEYC ...
- android中的后退功能,如何在Android应用中实现一个返回键功能
如何在Android应用中实现一个返回键功能 发布时间:2020-11-23 16:28:56 来源:亿速云 阅读:89 作者:Leah 今天就跟大家聊聊有关如何在Android应用中实现一个返回键功 ...
- Android系统onKeyDown监控/拦截/监听/屏蔽返回键、菜单键和Home键
我们可以在很多应用中都能看到按两次返回键退出 , 其实这个功能实现很容易, 下面就是实现的代码 , 把它放到你的程序中你的程序就能按两次返回键退出啦 , 这个功能是为了避免误点而把程序退出了 ,给你 ...
- android dialog返回键不消失,安卓dialog,屏蔽返回键,亲测可用
最近做一个商品选择套餐的功能,需要一个dialog进行翻页,然后按了返回键,dialog全部关闭了,这就很难受了,于是网上搜了一下,也试了很多,都不是想要的效果,突然想到按两下返回键退出app,刚好和 ...
最新文章
- 【腾讯bugly干货分享】微信Android热补丁实践演进之路
- php 面对对象总结,PHP 面向对象总结
- 【struts2+hibernate+spring项目实战】java读写实现代码生成器(ssh)
- javaweb 图书管理系统完整代码_看一名Java开发人员以红队思维五分钟审计一套代码(续)...
- mysql 端口 telnet 不通_3306端口不通,不一定是网络的问题
- 广东 职称英语计算机,现在评职称英语和计算机都不用考了
- 【转载】Apache如何设置访问一个目录需要密码
- 火山PC后台操作第三方窗口案例
- kmz文件转为arcgis的图层(制作底图)
- python通讯录管理系统设计_通讯录程序设计报告
- 离散数学关于等价关系的证明
- CSS边框border属性
- WP-CONTENT/UPLOADS的777,775,744,644,444文件权限设置
- 关于CClientDC与CPAINTDC,以及GetDC与GetWindowDC的用法。
- 灰狼优化算法(GWO)附代码
- 同时使用两片I2C同型号设备时地址怎样设置 (如何更改器件地址)
- 全球与中国触摸屏IC市场现状及未来发展趋势
- 有哪些适合新手的练手Java项目?
- 12小时制转24小时制
- python 仪表盘监控_Python 全栈开发 -- 监控篇
热门文章
- GitBook 使用教程
- 使用opencv截取旋转框目标
- rstudio找不到r低版本_R学习笔记-安装R和RStudio,注意RStudio的版本需要与操作系统版本匹配...
- intel linux核显性能,Linux下调节屏幕亮度(Intel核显)
- 浅入浅出Caffeine cache
- 台湾繁体字和大陆汉语转换
- 【深度学习小常识】CPU(中央处理器)和GPU(图像处理器)的区别
- KEIL 提示L6406E L6407E的解决方法
- 使用2019.2 Terrain Tools更新来加速Terrain Material绘画
- 一本通1646GT 考试