Android 에서 리 턴 키 를 두 번 눌 러 서 응용 프로그램 을 종료 하 는 방법 에 대한 상세 한 설명

머리말
현재 시장 에서 많은 응용 프로그램 들 이 사용자 가 리 턴 키 를 눌 렀 을 때 사용자 에 게 알려 줍 니 다.다시 한 번 누 르 면 응용 프로그램 을 종료 하 는 힌트,즉 리 턴 키 를 두 번 눌 러 서 응용 프로그램 을 종료 하 는 것 입 니 다.그 다음 에 우 리 는 몇 가지 방법 으로 이 기능 을 실현 할 것 입 니 다.
효과 도

이루어지다
첫 번 째 방법
Activity 의 onKeyUp 이벤트 에 응답 합 니 다.두 번 의 클릭 시간 이 2 초 이상 이면 응답 하지 않 고 2 초 이하 면 프로그램 을 종료 합 니 다.
코드:

//              
 private long firstTime = 0;

 /**
  *             keyUp
  * @param keyCode
  * @param event
  * @return
  */
 @Override
 public boolean onKeyUp(int keyCode, KeyEvent event) {
  if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) {
   long secondTime = System.currentTimeMillis();
   if (secondTime - firstTime > 2000) {
    Toast.makeText(MainActivity.this, "        ", Toast.LENGTH_SHORT).show();
    firstTime = secondTime;
    return true;
   } else {
    System.exit(0);
   }
  }

  return super.onKeyUp(keyCode, event);
 }
두 번 째 방법
첫 번 째 방법 과 마찬가지 로 이번 응답 은 onKeyDown 이벤트 에 불과 합 니 다.
코드:

 /**
  *      
  * @param keyCode
  * @param event
  * @return
  */
 @Override
 public boolean onKeyDown(int keyCode, KeyEvent event) {
  if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {
   long secondTime = System.currentTimeMillis();
   if (secondTime - firstTime > 2000) {
    Toast.makeText(MainActivity.this, "        ", Toast.LENGTH_SHORT).show();
    firstTime = secondTime;
    return true;
   } else {
    System.exit(0);
   }
  }
  return super.onKeyDown(keyCode, event);
 }
세 번 째 방법
onBackPressed()방법 직접 다시 쓰기
코드:

 /**
  *      
  */
 @Override
 public void onBackPressed() {
  long secondTime = System.currentTimeMillis();
  if (secondTime - firstTime > 2000) {
   Toast.makeText(MainActivity.this, "        ", Toast.LENGTH_SHORT).show();
   firstTime = secondTime;
  } else {
   System.exit(0);
  }
네 번 째 방법
스 레 드 지연 방법 으로 실현,Timer 의 도움 을 받 습 니 다.
코드:

/**
  *      
  */
 @Override
 public void onBackPressed() {
  if (!mBackKeyPressed) {
   Toast.makeText(this, "        ", Toast.LENGTH_SHORT).show();
   mBackKeyPressed = true;
   new Timer().schedule(new TimerTask() {
    @Override
    public void run() {
     mBackKeyPressed = false;
    }
   }, 2000);
  } else {
   this.finish();
   System.exit(0);
  }
 }
다섯 번 째 방법
onKeyUp()방법 에 Timer 사용 하기

  /**
  *      
  * @param keyCode
  * @param event
  * @return
  */
 @Override
 public boolean onKeyUp(int keyCode, KeyEvent event) {
  if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) {
   if (!mBackKeyPressed) {
    Toast.makeText(this, "        ", Toast.LENGTH_SHORT).show();
    mBackKeyPressed = true;
    new Timer().schedule(new TimerTask() {
     @Override
     public void run() {
      mBackKeyPressed = false;
     }
    }, 2000);
    return true;
   } else {
    this.finish();
    System.exit(0);
   }
  }
  return super.onKeyUp(keyCode, event);
 }
여섯 번 째 방법
onKeyDown()방법 에서 Timer 사용 하기

 /**
  *      
  * @param keyCode
  * @param event
  * @return
  */
 @Override
 public boolean onKeyDown(int keyCode, KeyEvent event) {
  if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {
   if (!mBackKeyPressed) {
    Toast.makeText(this, "        ", Toast.LENGTH_SHORT).show();
    mBackKeyPressed = true;
    new Timer().schedule(new TimerTask() {
     @Override
     public void run() {
      mBackKeyPressed = false;
     }
    }, 2000);
    return true;
   } else {
    this.finish();
    System.exit(0);
   }
  }
  return super.onKeyDown(keyCode, event);
 }
OK,여기 서 끝 났 습 니 다.원리 가 많 지 않 습 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기