您的位置:首页 > 移动开发 > Android开发

Android开发---按两次Back键退出

2016-11-19 18:02 218 查看
  思路1:记录上次点击的时间,与本次点击的时间比较,当两次时间间隔小于一定值时,退出,否则提示“再按一次退出程序”,同时更新上次点击时间

    

[java] view
plain copy

private long firstTime = 0;  

   @Override  

public boolean onKeyUp(int keyCode, KeyEvent event) {  

       // TODO Auto-generated method stub  

       switch(keyCode)  

       {  

       case KeyEvent.KEYCODE_BACK:  

            long secondTime = System.currentTimeMillis();   

             if (secondTime - firstTime > 2000) {                                         //如果两次按键时间间隔大于2秒,则不退出  

                 Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();   

                 firstTime = secondTime;//更新firstTime  

                 return true;   

             } else {                                                    //两次按键小于2秒时,退出应用  

            System.exit(0);  

             }   

           break;  

       }  

     return super.onKeyUp(keyCode, event);  

   }  

     思路2:开线程延时处理

[java] view
plain copy

private int mBackKeyPressedTimes = 0;  

  

        @Override  

        public 
db37
void onBackPressed() {  

                if (mBackKeyPressedTimes == 0) {  

                        Toast.makeText(this, "再按一次退出程序 ", Toast.LENGTH_SHORT).show();  

                        mBackKeyPressedTimes = 1;  

                        new Thread() {  

                                @Override  

                                public void run() {  

                                        try {  

                                                Thread.sleep(2000);  

                                        } catch (InterruptedException e) {  

                                                e.printStackTrace();  

                                        } finally {  

                                                mBackKeyPressedTimes = 0;  

                                        }  

                                }  

                        }.start();  

                        return;  

                      else{  

                               this.activity.finish();  

                            }  

                }  

                super.onBackPressed();  

        }  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: