투케이2K

44. (AndroidStudio/android/java) onKeyDown 뒤로 가기 두번 클릭 시 종료, setOnClickListener 버튼 중복 클릭 방지 실시 본문

Android

44. (AndroidStudio/android/java) onKeyDown 뒤로 가기 두번 클릭 시 종료, setOnClickListener 버튼 중복 클릭 방지 실시

투케이2K 2021. 2. 2. 08:01

/* =========================== */

[ 개발 환경 설정 ]

개발 툴 : AndroidStudio

개발 언어 : java

/* =========================== */

/* =========================== */

[소스 코드]

 

//========= [클릭 이벤트 시간을 저장할 변수 선언] =========
private long clickTime = 0; 



//========= [뒤로가기 클릭 이벤트 메소드 정의 실시] =========
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
	// TODO 모바일 디바이스의 뒤로가기 키 이벤트가 발생한 경우
	if (keyCode == KeyEvent.KEYCODE_BACK) {
		Log.d("---","---");
		Log.d("//===========//","===================");
		Log.d("","\n"+"[A_Main > onKeyDown() 메소드 : 백버튼 터치시 뒤로 가기 이벤트 실시]");
		Log.d("//===========//","===================");
		Log.d("---","---");
		//TODO ==== 2초 내에 다시 버튼을 중복 클릭한 경우 ====
		if (SystemClock.elapsedRealtime() - clickTime < 2000){
			Toast.makeText(getApplication(),"프로그램이 종료되었습니다",Toast.LENGTH_SHORT).show();
			finish();
			overridePendingTransition(0,0);
			return true;
		}
		clickTime = SystemClock.elapsedRealtime();
		//TODO ==== 처음 버튼 클릭 이벤트가 발생한 경우 ====
		Toast.makeText(getApplication(),"한번 더 뒤로가기를 클릭하시면 앱을 종료합니다",Toast.LENGTH_SHORT).show();
	}
	return true;
}



//========= [버튼 클릭 이벤트 중복 터치 방지 실시] =========
ok_button.setOnClickListener(new View.OnClickListener() {
	@Override
	public void onClick(View v) {
		//TODO ==== 2초 내에 다시 버튼을 중복 클릭한 경우 ====
		if (SystemClock.elapsedRealtime() - clickTime < 2000){
			Log.d("---","---");
			Log.d("//===========//","===================");
			Log.d("","\n"+"[A_Main > button 클릭 이벤트 : 중복 터치 방지]");
			Log.d("//===========//","===================");
			Log.d("---","---");
			return;
		}
		clickTime = SystemClock.elapsedRealtime();
		//TODO ==== 처음 버튼 클릭 이벤트가 발생한 경우 ====
		Toast.makeText(getApplication(),"정상 클릭 이벤트 발생",Toast.LENGTH_SHORT).show();
	}
});

/* =========================== */

반응형
Comments