android捕捉退出键

 public boolean onKeyDown(int keyCode, KeyEvent event) {//捕捉返回键
          if   ((keyCode == KeyEvent.   KEYCODE_BACK ) &&   wv .canGoBack()) {
            //返回上一个页面   
              wv .goBack();
              return   true ;
        }   else   if (keyCode == KeyEvent.   KEYCODE_BACK ){
           ConfirmExit(); //按了返回键,但已经不能返回,则执行退出确认
             return   true ;
        }  
          return   super .onKeyDown(keyCode, event);  
    }
   


      public   void   ConfirmExit (){ //退出确认
     AlertDialog.Builder ad=   new   AlertDialog.Builder( this );
     ad.setTitle( "退出" );
     ad.setMessage( "亲!你真的要退出?" );
     ad.setPositiveButton(   "是" ,   new   DialogInterface.OnClickListener() { //退出按钮
                 @Override
                 public   void   onClick(DialogInterface dialog,   int   i) {
                      //   TODO   Auto-generated method stub
                   finish();   //关闭activity
 
              }
          });
     ad.setNegativeButton(   "否" ,   new   DialogInterface.OnClickListener() {
                 @Override
                 public   void   onClick(DialogInterface dialog,   int   i) {
                      //不退出不用执行任何操作
              }
          });
     ad.show(); //显示对话框
    }


上面两个函数,就是主要的组成了, onKeyDown()捕捉返回键, ConfirmExit() 就退出确认。
这是webview的函数,所以在 onKeyDown里面第一个if是判断能不能返回上一个页面,类似浏览器的返回。

附加:
按再按一次退出:
也是直接拷贝到app就可以使用了
public class TestActivity extends Activity {
        private long mExitTime;

        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);

        }
       public boolean onKeyDown(int keyCode, KeyEvent event) {
                if (keyCode == KeyEvent.KEYCODE_BACK) {
                        if ((System.currentTimeMillis() - mExitTime) > 2000) {
                                Object mHelperUtils;
                                Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();
                                mExitTime = System.currentTimeMillis();

                        } else {
                                finish();
                        }
                        return true;
                }
                return super.onKeyDown(keyCode, event);
        }
}

你可能感兴趣的:(android捕捉退出键)