내 Android 앱에서 자원 집약적 인 작업을 거의 수행하지 않습니다. 앱을 종료하기 전에 항상 닫고 정리해야합니다. 내가 알고있는대로 onStop()
/onDestroy()
앱을 죽이는 동안 실행주기가 보장되지 않을 수 있습니다. 따라서 이러한 메서드에 클로즈업/정리 작업을 적용하는 것은 신뢰할 수 없습니다. 이 기능을 구현하기 위해 Android가 제공하는 최상의 대안은 무엇입니까? 감사.앱 종료 전에 필수 정리 작업 수행
답변
onStop, onDestroy
대신 을 사용해야합니다. 호출 할 수 있습니다.
내가 제안하는 것은 앱이 파괴 될 때 코드를 실행하기위한 주 활동에 onDestroy()를 오버라이드하거나 사용자가 앱을 종료 할 때 코드를 실행하기 위해 onStop()을 사용하는 것입니다.
활동이 파괴되기 전에 onDestroy()가 호출됩니다. 활동이 완료 중이기 때문에 호출 될 수 있습니다 (누군가 finish()를 호출 했음). 또는 공간을 절약하기 위해 활동의 인스턴스를 파괴하기 때문에 호출 될 수 있습니다. 이 두 시나리오는 isFinishing() 메소드를 사용하여 구분할 수 있습니다.
반면에 onStop()은 사용자가 더 이상 활동을 볼 수 없을 때 호출됩니다. 이것은 파괴되거나 다른 활동이 재개 되었기 때문에 발생할 수 있습니다. 사용자가 상호 작용하기 위해 활동이 돌아 오면 onRestart() 또는이 활동이 사라지면 onDestroy()를 따라 이동합니다. 마무리()가에서 onCreate() 메소드 내에서 호출되는 경우
@Override
protected void onStop() {
super.onStop();
// The activity is no longer visible i.e is it stopped now
}
@Override
protected void onDestroy() {
super.onDestroy();
//It is about to destroyed
}
onStop() 및 onDestroy는 끝까지 실행되는 것이 보장되지 않습니다. 메소드의 일부만 실행할 수 있습니다. 앱을 종료 한 후 언제든지 Android 앱 프로세스가 종료 될 수 있습니다. – Omkar
onPause()와 중지시는()가 호출되지 않습니다. 예를 들어, onCreate() 중에 오류를 감지하고 결과로 finish()를 호출하면이 오류가 발생할 수 있습니다. 그런 경우에도 onPause() 및 onStop()에서 수행 할 것으로 예상되는 정리는 실행되지 않습니다.
onDestroy()는 활동의 라이프 사이클에서 마지막 콜백이지만이 콜백은 항상 호출되지는 않으며 리소스를 파괴하는 데 의존해서는 안된다는 점을 언급 할 필요가 있습니다. onStart() 및 onResume()에서 만든 리소스를 onStop() 및 onPause에서 각각 삭제하는 것이 좋습니다.
활동 라이프 사이클에 대한 자세한 내용은 Android 개발자 가이드를 참조하십시오. https://developer.android.com/training/basics/activity-lifecycle/starting.html
- 1. 종료 전에 버퍼 정리
- 2. 앱 업그레이드 작업 수행
- 3. iOS에서 백그라운드로 이동하는 동안 정리 작업 수행
- 4. Jenkins - 작업 공간 삭제 작업 시작 전에 프로세스 종료
- 5. jenkins : 작업 종료 전에 승격
- 6. 탭을 변경하기 전에 작업 수행
- 7. WCF 서비스가 종료되기 전에 수행 작업
- 8. 앱 종료시 백그라운드 작업 수행
- 9. 앱 종료시 백그라운드에서 작업 수행 방법
- 10. 오류 종료 후 정리?
- 11. ViewModel에서보기 종료 및 정리
- 12. Caliburn 마이크로 앱 종료 앱 종료
- 13. 상태 패턴 - 각 전환 전에 작업 수행
- 14. 재설정 전에 작업 수행 탭 제스처에서 애니메이션보기
- 15. flask-sqlalchemy에서 삽입, 제거하기 전에 작업 수행
- 16. VBA 성능 문제 - 작업 수행 전에 확인하십시오.
- 17. 프로세스 종료/종료시 공유 POSIX 객체 정리
- 18. Facebook 앱 정리 알림 및 배지. 어떻게?
- 19. Android Dev : 앱 시작시 작업 수행
- 20. escript에서 정리 작업 실행
- 21. C++ WinAPI - Windows 종료 전에 정리가 프로세스를 종료합니까?
- 22. Qt 응용 프로그램을 종료 할 때 수행 할 작업
- 23. Anabilities - On 오류, 종료 역할 및 정리 정리
- 24. 크롬 확장에서 캐스팅 중지를 클릭하면 응용 프로그램이 종료되기 전에 정리 작업을 수행 할 수 있습니까?
- 25. 백그라운드에서 앱 종료
- 26. 필수`registerUserNotificationSettings : '앱 실행주기 중에 호출해야합니까?
- 27. OnBackPressing 앱 종료
- 28. 앱 강제 종료 또는 충돌시 로그 아웃 기능 수행 방법
- 29. SVN - 모든 svn 업데이트 전에 svn 정리
- 30. atexit을 사용한 패브릭 정리 작업
'finally'블록을 사용하여 리소스를 닫을 수 있습니다. – Rustam
'마지막'블록을 삽입하는 수명주기 방법은 무엇입니까? – Omkar
https://docs.oracle.com/javase/tutorial/essential/exceptions/finally.html – user1506104