딸기스무디

처음 버튼을 클릭한 후 2초동안 한번만 동작하게 하기(toast 중복 제거) 본문

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함수를 통해 앱 종료

Comments