티스토리 뷰

BACK_TIMEOUT 은 밀리초단위로 2000이면 2초이다.

2초 이내에 BACK 키가 다시 눌릴경우 종료하는 코드.

FLAG를 이용해서 2초이내에 눌렸는지 판단한다.

//==================================================
	// Back key 두번 종료 
	private static final int MSG_TIMER_EXPIRED 	= 1;
	private static final int BACK_TIMEOUT		= 2000;
	private boolean mIsBackKeyPressed			= false;
	private long mCurrentTimeInMillis			= 0;
	
	@Override
	public void onBackPressed() {
		if(mIsBackKeyPressed == false){
			mIsBackKeyPressed = true;
			
			mCurrentTimeInMillis = Calendar.getInstance().getTimeInMillis();
			Toast.makeText(Dialer.this, getString(R.string.back_end), Toast.LENGTH_SHORT).show();
			
			startTimer();
		}else{
			mIsBackKeyPressed = false;
			
			if(Calendar.getInstance().getTimeInMillis() <= (mCurrentTimeInMillis + (BACK_TIMEOUT))){
				finish();
			}
		}
	}
	
	private void startTimer(){
		mTimeHandler.sendEmptyMessageDelayed(MSG_TIMER_EXPIRED, BACK_TIMEOUT);
	}
		
	private Handler mTimeHandler = new Handler(){
		@Override
		public void handleMessage(Message msg) {
			switch(msg.what){
			case MSG_TIMER_EXPIRED:
				mIsBackKeyPressed = false;
				
				break;
			}
		}
	};
	 
	//==================================================




공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함