정상입니다.뒤로 버튼을 누르면 onStop()이 호출되지 않습니다.
워드 프로세서
라고는 "ONSTART() 및 중지시() 표시되어 사용자에게 숨겨진되는 사이 활성 대체물로서 방법이 여러 번 호출 될 수있다"내가 다시 버튼을 누르면 이전 활동으로 완전히 되돌아갑니다.
여기에 무슨 일이 일어나고 있습니까?
정상입니다.뒤로 버튼을 누르면 onStop()이 호출되지 않습니다.
워드 프로세서
라고는 "ONSTART() 및 중지시() 표시되어 사용자에게 숨겨진되는 사이 활성 대체물로서 방법이 여러 번 호출 될 수있다"내가 다시 버튼을 누르면 이전 활동으로 완전히 되돌아갑니다.
여기에 무슨 일이 일어나고 있습니까?
onStop()이 아니라 onPause()를 원합니다. onStop은 시스템의 메모리가 부족할 때 활동이 소멸되기 직전에 호출됩니다. onPause는 사용자가 활동에서 벗어날 때마다 호출됩니다. http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle의 다이어그램을 참조하십시오.
다이어그램에 "활동이 더 이상 보이지 않습니다"라고 표시되고 onStop()이 발생하므로 "더 이상 볼 수 없다"는 것은 무엇을 의미합니까? 나는 활동으로가는 것이 더 이상 보이지 않는다는 것을 의미한다고 생각했을 것입니다. – jax
내 이해에서, 안드로이드는 "전경의 다른 활동"(onPause가 호출되었지만 활동이 VM을 가지고 계속 작동 함)과 "활동이 더 이상 보이지 않기 때문에 더 이상 볼 수 없다"를 구분합니다. " onStop, 나중에 onDestroy가 호출 됨). 따라서 onPop은 활동이 숨겨 질 때마다 즉시 호출되지만 onStop은 덜 자주 호출됩니다. 이것은 단지 내 물건을 잡는 것입니다, 그리고 아마 다소 부정확하지만, 안드로이드 워드 프로세서는 "onResume에 대한 호출과 onPause에 해당하는 호출 사이에서 활동의 전경 (foreground) 수명이 발생합니다."라고 말합니다. – QRohlf
내 활동이 단일 사용만을위한 경우 어떻게해야합니까? 종료 할 때마다 VM을 종료하고 onPause를 호출 할 때 ... 내 질문은 http://stackoverflow.com/questions/13928591/a-strange-behavior- 조각의 목적 - – aProgrammer
새 인스턴스를 만들 때 활동 인스턴스에 대한 호출을 계속해야하는 경우 this hacky solution을 사용할 수 있습니다. #onStop() 및 #onDestroy() 대신 #doStopOperation() 및 #doDestroyOperation()에 논리를 구현하기 만하면 재정의 된 메서드에서 super # onStop() 및 super # onDestroy()를 호출해야합니다. 물론이 액티비티를 확장 할 때 AppCompatActivity를 확장 할 필요는 없으며 대신 일반 액티비티를 사용할 수 있습니다. 이 기능은 제작 환경에서 작동하므로 잘하면 도움이 될 것입니다.
난 당신이 및 이 새로운 인스턴스가 생성되지도을 파괴 정지를 호출 할뿐만 아니라 타이머 해킹을 쓸 수도 있겠죠,하지만 당신에게 달려 있습니다.
onStop()
액티비티가 더 이상 표시되지 않을 때마다 호출됩니다. 그래서 뒤로 버튼을 누를 때 onStop()
이 실제로 호출됩니다.
간편한 확인 - onStop()/onStart()
콜백에 중단 점을 넣고 디버깅 세션을 실행해야합니다.
그러나 현재 활동의 onStop()
은 전환 할 활동의 AFTER onStart()/onResume()
이라고 할 수 있습니다.
따라서 첫 번째 활동의 onStop()
에서 업데이트하려고 시도했으며 오류가 발생한 두 번째 활동의 onStart()
에 업데이트 된 데이터를 가져올 것으로 예상했기 때문입니다.
onStop 방법을 추적하는 데 사용하는 관련 코드 스 니펫을 표시 할 수 있습니까? – Cristian