본문 바로가기

개발/Android 개발 주저리

[Android] 뒤로버튼 두번으로 어플종료시키기


요즘 어플리케이션들을 보면 전부, 뒤로 버튼을 누를경우 한번더 누르면 종료된다고 Toast가 뜨는걸 볼 수 있다

원리는 간단하다 back 키 action이 들어오면 특정변수에 횟수를 저장하고 한번 더 눌릴경우 누적시켜 종료시키면 되는거다


아래는 예제

1.일단 헨들러를 만들어 준다

// BACK키 핸들러

mHandler = new Handler() {

   @Override

   public void handleMessage(Message msg) {

       if(msg.what == 0) {

           mFlag = false;

       }

   }

};



2.키액션을 받음

/*

 백키 이벤트를 가로채서 플래그값 확인 후 처리.

 플래그 값이 true인 상태에서 2초 이내에 백키를 누르면 액티비티 종료.

*/

@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

   if (keyCode == KeyEvent.KEYCODE_BACK) {

       if(!mFlag) {

           Toast.makeText(OnTouchLock.this, "뒤로 버튼을 한번더 누르시면 종료됩니다", Toast.LENGTH_SHORT).show();

           mFlag = true;

           mHandler.sendEmptyMessageDelayed(0, 2000);

           return false;

       } else {

           finish();

       }

   }

   return super.onKeyDown(keyCode, event);

}