当前位置: 首页 > news >正文

网站公司网站建设建设公司网站价格

网站公司网站建设,建设公司网站价格,开发者选项开启好还是关闭好,汽车之家官网首页网页有时候#xff0c;不能让用户进行回退操作#xff0c;如何处理#xff1f; 查看返回键触发了哪些方法。在打开程序后把这个方法禁止了。问题#xff1a;程序在后台驻留#xff0c;这样就会出现#xff0c;其他时候也不能使用回退按钮。如何处理#xff0c;在onpase()时方…有时候不能让用户进行回退操作如何处理 查看返回键触发了哪些方法。在打开程序后把这个方法禁止了。 问题程序在后台驻留这样就会出现其他时候也不能使用回退按钮。如何处理在onpase()时方法失效。 方案一 1 //重载onBackPressed 2 Override 3 public void onBackPressed() { 4 // TODO Auto-generated method stub 5 //super.onBackPressed(); 6 } 查看Adroid源码 onBackPressed ()源码 1 public void onBackPressed() { 2 finish(); 3 } 重写这个方法会不会有什么问题呢他执行一个finish();方法对其本身应该没什么问题那么调用出呢 下面是Activity中调用的两处 Adroid源码调用1: 1 public boolean onKeyDown(int keyCode, KeyEvent event) {2 //当按钮等于KEYCODE_BACK时执行下面方法KEYCODE_BACK这个就是返回键3 if (keyCode KeyEvent.KEYCODE_BACK) {4 //检测版本号 ECLAIR 值为public static final int ECLAIR 5;5 if (getApplicationInfo().targetSdkVersion6 Build.VERSION_CODES.ECLAIR) {7 //当大于5是执行8 /**startTracking()解释调用onKeyUp()方法。9 Call this during Callback.onKeyDown to have the system track the key through its final up (possibly including a long press). Note that only one key can be tracked at a time -- if another key down event is received while a previous one is being tracked, tracking is stopped on the previous event. 10 */ 11 event.startTracking(); 12 } else { 13 onBackPressed(); 14 } 15 return true; 16 } 17 } Adroid源码调用2 1 public boolean onKeyUp(int keyCode, KeyEvent event) {2 if (getApplicationInfo().targetSdkVersion3 Build.VERSION_CODES.ECLAIR) {4 if (keyCode KeyEvent.KEYCODE_BACK event.isTracking()5 !event.isCanceled()) {6 onBackPressed();7 return true;8 }9 } 10 return false; 11 }   到这里可以看出我们在onBackPressed()被调用处都是在按下返回键的情况下所以可以冲写onBackPressed方法因为是被调用的虽然不会出错但是效率应该不高。 要不我们重写onKeyDown方法这样可行直接拦截。 1 Override 2 public boolean onKeyDown(int keyCode, KeyEvent event) { 3 if(keyCodeKeyEvent.KEYCODE_BACK) { 4 Toast.makeText(getApplicationContext(), back press, Toast.LENGTH_LONG).show(); 5 return false; // Disable back button.............. 6 } 但是会如果在按钮处直接拦截效果应该会高一些这样就不会触发上面这两个方法了。 于是乎我们继续向上寻找。 细心的朋友可能发现onBackPressed()调用了finish()方法所以干脆我们重写它吧。 方案二重载finish函数: 查看Android的 finish()源码 1 public void finish() {2 if (mParent null) {3 int resultCode;4 Intent resultData;5 synchronized (this) {6 resultCode mResultCode;7 resultData mResultData;8 }9 if (Config.LOGV) Log.v(TAG, Finishing self: token mToken); 10 try { 11 if (ActivityManagerNative.getDefault() 12 .finishActivity(mToken, resultCode, resultData)) { 13 mFinished true; 14 } 15 } catch (RemoteException e) { 16 // Empty 17 } 18 } else { 19 mParent.finishFromChild(this); 20 } 21 } 查看Android源码中调用它的方法 1 /**2 * This is called when a child activity of this one calls its3 * {link #finish} method. The default implementation simply calls4 * finish() on this activity (the parent), finishing the entire group.5 *6 * param child The activity making the call.7 *8 * see #finish9 */ 10 public void finishFromChild(Activity child) { 11 finish(); 12 } 从说明中我们知道这个方法是在子Activity结束时调用的这个方法所以不行如果我们要重写需要进行判断拿到的键值。效率不高。 继续寻找看看哪里执行了调用方法按键吧。方案三重写keyevent方法 大括号里加上return true 这样就禁用父类方法达到禁止返回键的目的  Android源码中找来找去找到了这个 1 /**2 * Called to process key events. You can override this to intercept all3 * key events before they are dispatched to the window. Be sure to call4 * this implementation for key events that should be handled normally.5 *6 * param event The key event.7 *8 * return boolean Return true if this event was consumed.9 */ 10 public boolean dispatchKeyEvent(KeyEvent event) { 11 onUserInteraction(); 12 Window win getWindow(); 13 if (win.superDispatchKeyEvent(event)) { 14 return true; 15 } 16 View decor mDecor; 17 if (decor null) decor win.getDecorView(); 18 return event.dispatch(this, decor ! null 19 ? decor.getKeyDispatcherState() : null, this); 20 } 就是在按钮触发的事件当然是Activity中的。到此我们发现我们找到地方了按钮进入后第一个处理的地方再次我们重写这个方法就OK了。 1 Override2 3 public boolean dispatchKeyEvent(KeyEvent event) {4 5 if (event.getKeyCode() KeyEvent.KEYCODE_BACK) 6 { 7 8 return true; 9 10 } 11 12 return super.dispatchKeyEvent(event); 13 14 }   转载于:https://www.cnblogs.com/dava/p/3688577.html
http://www.zqtcl.cn/news/433096/

相关文章:

  • html制作网站推广最有效的办法
  • 做网站推广的工作内容凡客诚品创始人
  • 网站开发pc端和手机端外贸建设网站公司
  • 长沙哪家网站设计好上海成品网站
  • wordpress商城插件收费哪里可以做网站优化
  • 中国建设银行u盾下载假网站吗wordpress有没有付费
  • 海南哪家公司做网站开发一套管理系统多少钱
  • 做网站建设费用百姓网
  • 西安建设厅网站wpf做网站教程
  • 好的网页网站设计wordpress对外发邮件
  • 湖北网站建设贴吧信用宁波企业网查询
  • 佛山市官网网站建设多少钱网站建设与管理书籍
  • 网站建设佰金手指科杰二八佛山有那几家做网站
  • 网站建设刂搜金手指下拉贰伍wordpress 外链自动nofflow
  • 搭建一个网站多少钱手机软件开发用什么语言
  • 太原专业网站建设杭州网络推广专员
  • 广西专业建网站橙米网站建设
  • 百度做的网站能优化吗html网站系统
  • php素材网站源码免费下载网站维护的内容有哪些
  • 打鱼跟电子游戏网站怎么做佛山微网站开发哪家好
  • 知名的网站建设网站在工信部备案
  • 网站首页的快照更新慢爆wordpress密码
  • dw做网站背景图片设置铺平微博通 wordpress
  • 勉县网站建设电商网站要素
  • 重庆旅游seo整站优化网站制作的一般步骤是什么
  • 网站建设评估体系p2p网站建设框架
  • .net 快速网站开发东莞网站建设公司哪家好
  • 东莞个人网站设计潍坊专业人员继续教育
  • 网站建设如何创业建设招标网官网
  • 公司没有销售网站怎么做业务怎么做微信推送 网站