android 程序 点击两次返回键程序退出(方法总结)

转载自:http://tjlibaoh.blog.163.com/blog/static/2112264132012984518743/

方法一:

private static Boolean isExit = false;      
	private static Boolean hasTask = false;      
	Timer tExit = new Timer();      
	TimerTask task = new TimerTask() {  
		@Override          
		public void run() {              
			isExit = false;              
			hasTask = true;          
		}     
	};  
	public boolean onKeyDown(int keyCode, KeyEvent event) {                  
		// TODO Auto-generated method stub                  
		if(keyCode == KeyEvent.KEYCODE_BACK){                          
			if(isExit == false ) {                                  
				isExit = true;                                  
				Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show();                                 
				if(!hasTask) {                                         
					tExit.schedule(task, 2000);                                  
				} else {                                                                                     
						
				}                                  
				finish();                                  
				System.exit(0);                         
			}                 
		}                                         
		return false;         
	}  


方法二:

boolean isExit=false;  
    Handler mHandler = new Handler(){  
        @Override 
        public void handleMessage(Message msg) {  
            super.handleMessage(msg);  
            isExit=false;  
        }  
          
    };  
      
    @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) {  
        // TODO Auto-generated method stub 
        if(keyCode == KeyEvent.KEYCODE_BACK){  
            if(!isExit){  
                isExit=true;  
                Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();  
                //利用handler延迟发送更改状态信息 
                mHandler.sendEmptyMessageDelayed(0, 2000);  
            }  
            else{  
                finish();  
                System.exit(0);  
            }  
        }  
        return false;  
    } 



方法三:

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

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


方法三简单,好用……

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值