Android(Java)
[Java] 홈버튼 및 백그라운드 앱 전체 보기시 이벤트 제어
삽질중
2024. 2. 14. 13:10
홈버튼 클릭시 생명주기에 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);
}