2016-11-04 7 views
0

액티비티의 오른쪽 위 X를 클릭하면 안드로이드에서 발생하는 이벤트를 알고 싶습니다. onStop()onDestroy()을 시도했지만 전혀 호출되지 않았습니다.안드로이드 액티비티의 오른쪽 위 X를 클릭하면 발생하는 이벤트를 잡는 방법

저는 앱 테마로 AppTheme.NoActionBar을 사용하고 있으며, 내 액티비티는 AppCompatActivity를 확장합니다.

또한 오른쪽 상단 X 버튼을 제거 할 수 있습니까 (드롭 다운 메뉴 유지)?

enter image description here

답변

0

그 이미지를 보면, 당신은 "최근에 사용한"(또는 무엇이든이 호출) 장치의 섹션에 있습니다. 해당 화면에있는 경우 onStop()이 이미 활동에 대해 호출되었으며 X (닫기 앱) 버튼을 클릭하면 onDestroy()가 호출됩니다.

해당 라이프 사이클 메소드, onPause onStop 등을 덮어 쓰고 그 안에 Log 문을 배치하십시오. 이렇게 : Log.d ("lifecycle", "onStopCalled"); 무슨 일이 일어나고 있는지 logcat을 확인하십시오

+0

답장을 보내 주셔서 감사합니다. 실제로 onPause(), onStop() 및 onDestroy()를 오버라이드하고 각 메서드에 중단 점을 설정하여 코드를 추적했습니다. 내 관찰을 기반으로 최근 앱 버튼 (사각형 버튼)을 클릭하면 onPause()가 먼저 호출되고 onStop()이 호출되지만 X 버튼을 클릭하면 아무 것도 호출되지 않습니다. 매우 이상합니다. 내가 여기서 아무것도 놓치고 있니? –

+0

맞습니다. 최근 앱 버튼 (또는 화면에 앱이 사라지게하는 버튼)을 클릭하면 첫 번째 onPause가 호출 된 다음 onStop()이 호출됩니다. 이 시점에서 응용 프로그램은 계속 살아 있지만 응용 프로그램이 보이지 않으면 중지 상태입니다. 이 후에는 두 가지 옵션이 있습니다. 1. 앱을 다시 화면에 표시하거나 2. 앱을 완전히 닫습니다. 옵션 2를 선택하면 onDestroy(); 호출됩니다. 1을 선택하면 다음 메소드가 호출됩니다. onRestart(); , onResume(); – user6650650

+0

Google 이미지에서 "활동 라이프 사이클"을 검색하고 해당 스킴을 확인하십시오. 그것은 당신이 훨씬 더 잘 이해할 수 있도록 도와 줄 것입니다. = D – user6650650