android
처음 버튼을 클릭한 후 2초동안 한번만 동작하게 하기(toast 중복 제거)
strawberry-smoothie
2020. 9. 15. 20:00
짧은시간동안 반복적으로 버튼을 누르는것을 막으려다보니 구현한 방법
private long sendPressTime = 0; private static Toast toast; public void onclickButton1(View view) { if(System.currentTimeMillis() > sendTime + 2000){ sendTime = System.currentTimeMillis(); if (toast != null) { toast.cancel(); //이전에 생성된 TOAST가 있다면 삭제 } toast = Toast.makeText(this, "메시지를 전송하였습니다.", Toast.LENGTH_SHORT); toast.show(); text1.clearFocus(); /* * contents * */ } }
sendTime + 2000보다 현재 시간이 지났을때(2초 후) 조건문을 실행하도록 하였다.
이전에 생성된 toast가 있는 경우 cancel함수로 제거하고 새로운 toast 생성
뒤로가기 클릭시 두번눌러야 앱이 종료되도록 하기
private long backKeyTime = 0; private static Toast toast; public void onBackPressed() { if(System.currentTimeMillis() > backKeyTime + 2000){ backKeyTime = System.currentTimeMillis(); if (toast != null) { toast.cancel(); //이전에 생성된 TOAST 삭제 } toast = Toast.makeText(this, "한번 더 누르면 앱을 종료합니다", Toast.LENGTH_SHORT); toast.show(); } else{ Toast.makeText(this, "종료되었습니다.", Toast.LENGTH_LONG).show(); finish(); } }
2초가 지난경우 finish함수를 통해 앱 종료