[android] 백 버튼을 두 번 클릭해야 앱 종료하기

백 버튼을 연속 두 번 클릭해야 앱 종료 시키는 경우가 있다.

RxJava 의 skip(2) 를 이용해도 되는데, skip은 다시 초기화를 시켜주는 작업을 또 해줘야 한다.

그럴 바엔 그냥 이 코드를 쓰는 게 낫지 싶다.

private static long backPressedAt;

@Override
public void onBackPressed() {
  if (backPressedAt + TimeUnit.SECONDS.toMillis(2) > System.currentTimeMillis()){
    super.onBackPressed();
  }
  else{
    Toast.makeText(getBaseContext(), "두 번 클릭해야 앱 종료", Toast.LENGTH_SHORT).show();
    backPressedAt = System.currentTimeMillis();
  }
}

 

도움 받은 곳: https://gist.github.com/CreatorB/99cdb013a4888453b8a0