홈버튼 클릭시 생명주기에 onPause 보다 먼저 호출되는 이벤트가 있다.
onUserLeaveHint()
- 홈버튼 클릭시
- Activity 이동시
* Activity 이동시 호출 안되게 하기 위해서는 FLAG_ACTIVITY_NO_USER_ACTION 플러그를 추가하면 됨.
Intent intent = new Intent(MainActivity.this, SubActivity.class);
intent.addFlags(FLAG_ACTIVITY_NO_USER_ACTION); // 플래그를 추가한다.
startActivity(intent);
onWindowFocusChanged(boolean hasFocus)
: hasFocus가 false 이면 화면이 가려지거나 백그라운드 앱전체 보기 전환시, true 이면 화면이 정상적으로 돌아왔을 경우
- 백그라운드 앱으로 이동(실행중인 앱 전체 보기)
- Activity 이동시
해당 이벤트를 이용해서 백그라운드 전체보기 전환시 앱 화면을 캡쳐 못하게 처리할 수 있다.
@Override
protected void onUserLeaveHint() {
//캡쳐방지 설정
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
super.onUserLeaveHint();
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
Log.d("lifeCycle", "1.onWindowFocusChanged");
if (hasFocus == true) {
Log.d("lifeCycle", "화면보여짐");
// 캡쳐방지 해제
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE);
} else {
Log.d("lifeCycle", "화면안보여짐");
// 캡쳐방지 설정
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
}
super.onWindowFocusChanged(hasFocus);
}
'Android(Java)' 카테고리의 다른 글
[Java] ActivityResultLauncher 사용 (0) | 2024.02.21 |
---|---|
[Java-중요] Permission 여러개 한번에 설정 요청 하기 (1) | 2024.02.19 |
[Java] 화면 켜짐 상태 유지 설정 / 해제 (0) | 2024.02.14 |
[Java] 캡쳐 방지 설정 / 해제 (0) | 2024.02.14 |
[Java] AsyncTask Deprecated (2) | 2024.01.23 |