捕获返回键,重写方法:
                                            public boolean onKeyDown(int paramInt, KeyEvent paramKeyEvent) {                                  if (paramInt == 82)//启动相机,下面是做的扫码,返回产品搜索页。这个会在其他文章中说明。                                  CaptureActivity.startWithCallBack(this, new CaptureActivity.AfterCapture() {                                  public void doAfterCapture(final String paramAnonymousString) {                                  MainActivity.this.runOnUiThread(new Runnable() {                                  public void run() {                                  MainActivity.this.mWebView.loadUrl(MainActivity.this.serviceURL                                  + "products/products.aspx?barcode=" + paramAnonymousString);                                  }                                  });                                  }                                  });                                  if (paramInt == 4)//这就是返回键参数,即KeyEvent.KEYCODE_BACK                                  if (isMainWebShowing()) {                                  String[] arrayOfString = this.mWebView.getUrl().split("&");//这里是获取WebView的当前URL,用&分割成两个String。我程序中用到的,不用管                                  if ((arrayOfString.length == 2)                                  && (arrayOfString[0].startsWith(this.serviceURL + "products/search.aspx?px="))                                  && (arrayOfString[1].startsWith("spflcode="))) {                                  Log.e("js", "js back");                                  this.mWebView.loadUrl("javascript:backClick()");//调用当前HTML页的JS方法backClick()                                  return true;                                  }                                  if (this.mWebView.canGoBack()) {                                  this.mWebView.goBack();//如果可以返回,则返回上一页                                  return true;                                  }else{                                  exit();//下边有                                   return false;                                   } else {                                  showMainWeb();                                  return true;                                  }                                  return super.onKeyDown(paramInt, paramKeyEvent);                                  }                      
再按一次返回:
                                            private void exit() {                                  if (!isExit) {                                  isExit = true;                                  Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();                                  // 利用handler延迟发送更改状态信息                                  mHandler.sendEmptyMessageDelayed(0, 2000);                                  } else {                                  finish();                                  System.exit(0);                                  }                                  }                      
isExit初始值是: private static boolean isExit= false ;

更多相关文章

  1. android stdio 设置屏幕旋转后保存数据
  2. Android(安卓)Studio Mac 快捷键
  3. 在Android中获取系统正在运行的进程方法
  4. Android——new Canvas(Bitmap)中对canvas和bitmap的理解
  5. Android调用摄像头和相册
  6. Android使double保留两位小数的多方法 java保留两位小数
  7. android ndk 给结构体赋值的方法
  8. 关于android开发中的@Override
  9. 如何使用好android的可访问性服务(Accessibility Services)

随机推荐

  1. 【Android】Android(安卓)Studio 使用第
  2. Android(安卓)无障碍辅助功能Accessibili
  3. 【Android(安卓)开发入门】我为什么要在A
  4. Android系统架构浅析-「Android取经之路
  5. 标题栏系列:自定义沉浸式标题栏
  6. 什么是Android?
  7. 我的Android之旅——学习、项目、心态
  8. (1)集成
  9. Android(安卓)Framework - 开机启动 Init
  10. Google 正在悄悄解决 Android(安卓)的碎