Notice
Recent Posts
Recent Comments
Link
투케이2K
194. (AndroidStudio/android/java) onUserLeaveHint 사용해 모바일 홈 키 (home key) 이벤트 발생 감지 실시 본문
Android
194. (AndroidStudio/android/java) onUserLeaveHint 사용해 모바일 홈 키 (home key) 이벤트 발생 감지 실시
투케이2K 2021. 9. 19. 09:33[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : java
[소스 코드]
/** ========= [액티비티 백그라운드 상태 감지] ========= **/
@Override
protected void onUserLeaveHint() {
super.onUserLeaveHint();
Log.d("---","---");
Log.d("//===========//","================================================");
Log.d("","\n"+"[A_AA_Test_Java > onUserLeaveHint() 메소드 : 홈 키 이벤트 발생 감지]");
Log.d("//===========//","================================================");
Log.d("---","---");
/**
* [추가 설명]
* 1. onUserLeaveHint 이벤트는 액티비티 백그라운드 상태를 감지합니다
* 2. 홈 키 이벤트는 onKeyDown 이벤트에서 감지를 할 수 없으므로 onUserLeaveHint를 통해서 감지합니다
* 3. 참고 사항 :
* - 액티비티 >> 액티비티 인텐트 이동 시에도 onUserLeaveHint 이벤트가 발생합니다
* - 액티비티 이동 시 intent.addFlags(FLAG_ACTIVITY_NO_USER_ACTION);
* 플래그를 추가해 onUserLeaveHint 이벤트 발생을 캔슬할 수 있습니다
* */
try {
//TODO [로직 처리 실시]
}
catch (Exception e){
e.printStackTrace();
}
}
/** ========= [모바일 키 이벤트 상태 감지 실시] ========= **/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
//TODO [디바이스의 뒤로가기 키 이벤트 발생]
if (keyCode == KeyEvent.KEYCODE_BACK) {
Log.d("---","---");
Log.d("//===========//","================================================");
Log.d("","\n"+"[A_AA_Test_Java > onKeyDown() 메소드 : 디바이스의 뒤로가기 키 이벤트 발생]");
Log.d("//===========//","================================================");
Log.d("---","---");
try {
//TODO [액티비티 종료 실시]
Intent intent = new Intent(A_AA_Test_Java.this, A_Main.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); // 애니메이션 캔슬
intent.addFlags(Intent.FLAG_ACTIVITY_NO_USER_ACTION); // onUserLeaveHint 캔슬
startActivity(intent); // 인텐트 이동
finish(); // 현재 화면 액티비티 finish
overridePendingTransition(0,0);
}
catch (Exception e){
e.printStackTrace();
}
}
return true;
}
[결과 출력]
[홈 키 이벤트 감지 화면]
[인텐트 이동 화면]
반응형
'Android' 카테고리의 다른 글
Comments