이것은 한동안 나를 미치게 만들었다.
Android 애플리케이션에서 홈 버튼을 눌렀는지 확실하게 감지 할 수있는 방법이 있습니까?
실패하면 활동이 onPause로 들어가는 원인을 알 수있는 강력한 방법이 있습니까? 즉, 새로운 활동이 시작되거나 뒤로 / 홈을 눌러서 발생했는지 감지 할 수 있습니까?
내가 본 한 가지 제안은 onPause ()를 재정의하고 isFinishing ()을 호출하는 것이지만 새 활동이 시작되는 것처럼 홈 버튼을 누르면 false를 반환하므로 둘을 구분하지 못합니다.
많은 도움을 주셔서 감사합니다.
** 업데이트 ** : https://nishandroid.blogspot.com/ 링크에 대한 @ android-hungry 감사합니다.
다음 방법을 재정의합니다.
@Override
public void onAttachedToWindow() {
super.onAttachedToWindow();
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
}
그런 다음 홈 버튼 누름에 대해 다음 이벤트가 시작됩니다.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_HOME)
{
//The Code Want to Perform.
}
});
이 줄에 부작용이 있는지 확실하지 않습니다.
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
따라서 대중적인 믿음과는 달리 실제로 홈 키를들을 수 있습니다. 걱정스럽게도 false를 반환하고 홈 키가 아무것도하지 않도록 할 수 있습니다.
업데이트 : 예상대로 이로 인해 약간의 부작용이 있습니다.이 모드를 사용하면 삽입 된 동영상과 Google지도가 보이지 않는 것 같습니다.
업데이트 : 아마도이 해킹은 Android 4.0 이상에서 더 이상 작동하지 않습니다.
Activity.onUserLeaveHint()
.