먼저 응용 프로그램을 제거하지 않고 설치하면 어떻게됩니까?내 안드로이드 응용 프로그램을 재설치하면 어떻게됩니까?
Activity.OnDestroy()가 호출되지, 내 응용 프로그램이 현재 실행되고있을 때 내가 무엇을 찾고
는, 그리고 나는 다시 설치하지.
응용 프로그램을 닫기 전에 뭔가해야합니다.
먼저 응용 프로그램을 제거하지 않고 설치하면 어떻게됩니까?내 안드로이드 응용 프로그램을 재설치하면 어떻게됩니까?
Activity.OnDestroy()가 호출되지, 내 응용 프로그램이 현재 실행되고있을 때 내가 무엇을 찾고
는, 그리고 나는 다시 설치하지.
응용 프로그램을 닫기 전에 뭔가해야합니다.
onPause()
을 사용하십시오. this에 따르면 을 호출 할 수있는 유일한 방법은 onPause()
입니다. 후자 인 onStop()
및 onDestroy()
은 호출되지 않을 수 있습니다.
그러나 AFAIK는 을 응용 프로그램이 일시 중지 (예 : 다시 설치)하는 이유를 알 수 없습니다. 다시 설치를 감지하는 유일한 방법은 다음과 같습니다.
SharedPreferences
을 사용하십시오.PackageManager
사용). 차이점이있는 경우 앱을 업그레이드 할 때 수행해야 할 작업을 수행하고 SharedPreferences
의 이전 버전 코드를 덮어 씁니다.또한 다시 설치하는 동안 버전 코드가 필요합니다. 동일한 버전 코드가있는 패키지로 adb install -r
을 수행하는 중이라면 알 수있는 방법이 없습니다.
lifecycle - onDestroy()에 대한 설명 읽기는 호출 할 수 없습니다. 신뢰할 수있는 유일한 콜백은 onPause()이므로 뭔가를해야합니다.
내 앱에서 onPause가 발생하는지 여부를 알 수있는 플래그를 추가하고 있습니다. 그래서 시나리오의 대부분 또는 전부를 제거합니다. – piojo
그건 좋은 생각이 아닐 수도 있습니다. 앱은 전화 통화, 뒤로/집으로 치는 사용자, 사용자가 알림을 클릭하는 등 일시 중지 할 수도 있습니다. – Felix