내 안드로이드 앱이 백그라운드로 이동하면 리소스를 회수하기 위해 시스템이 닫힐 수 있습니다. 이 순간을 감지하고 코드를 실행할 수 있습니까? 어떤 알림 (메서드 호출)이 발생하면 있습니까?내 앱이 시스템에 의해 닫힐 때 알림을받을 수 있습니까?
답변
를 참조하십시오. Android가 리소스를 회수하기 위해 애플리케이션을 종료하려고 할 때 은 프로세스를 중지합니다. 그게 전부 야. 경고도없고, 콜백도없고, 아무 것도 할 수 없습니다.
의 onDestroy()
방법을 구현하십시오.
은 정답은 "NO"입니다 Activity lifecycle
나는 OP가 활동 종료가 아닌 프로세스 종료를 파악하려고한다고 믿습니다. 뒤로를 누르면 활동이 닫히지 만 메모리가 부족하지 않은 경우 앱이 실행됩니다. –
프로세스가 Android에 의해 종료 된 경우 onDestroy()는 프로세스의 모든 작업에서 ** 호출되지 않습니다 **. 그들은 그냥 가버립니다. 경고없이. 똥! 지나간. –
네이티브 (NDK/JNI) 라이브러리에서 SIGKILL을 잡아보십시오. 그러나 신호 처리 코드에서는 거의 아무 것도 할 수 없습니다. 확실히 자바 세계로 다시 전화하지 마라. 시그널 핸들러는 * nix 규칙에 의해 크게 제한됩니다.
처음부터 성취하려는 것은 무엇입니까? 모든 현명한 정리는 일반적으로 활동 종료 코드 (onDestroy()
)로 수행됩니다. 프로세스 수명은 예측할 수없는 것으로 명시되어 있으므로 대부분의 사용 시나리오에서는 문제가되지 않습니다.
다음에 활동이 시작될 때 오브젝트 상태를 복구하려고 시도합니다. 현재, 파일에 serialization을 통해 onSaveInstanceState에 저장합니다. 내가 싫어하는 점은, 뒤로 버튼을 눌렀을 때를 제외하고, 내 활동이 스택 맨 위에서 나가는 때마다 객체가 직렬화된다는 사실입니다. 그래서 나는 많은 불필요한 일을한다. 내가 프로세스가 죽으면 개체를 저장하고 싶습니다. –
Android에서 제안하는 것처럼 파일에 저장하거나 번들에 저장하지 마십시오. 번들을 지속 시키거나 (또는 메모리에 유지하는) 규칙은 시스템에 달려 있습니다. 시스템을 추측하는 것은 일반적으로 위험한 비즈니스입니다. –
- 1. window.close (javascript)로 창이 닫힐 때 어떻게 알림을받을 수 있습니까?
- 2. 위치가 변경되고 내 앱이 백그라운드에서 실행될 때 로컬 알림을받을 수 있습니까?
- 3. 앱이 실행되고 있지 않을 때 푸시 알림을받을 수 없습니다.
- 4. 일부 프로세스가 시작될 때 알림을받을 수 있습니까?
- 5. ListView가 채워질 때 어떻게 알림을받을 수 있습니까?
- 6. handleOpenURL은 앱이 이미 시작된 경우에만 작동하며 앱이 닫힐 때 충돌합니다.
- 7. 사이트가 닫힐 때 쿠키를 삭제할 수 있습니까?
- 8. 푸시 알림을받을 때 앱이 사용자 사전을 기반으로 알림 표시를 결정할 수 있습니까?
- 9. 내 앱이 닫힐 때까지 Android 알림을 계속 표시하려면 어떻게해야합니까?
- 10. PyQt를 사용하여 프로세스가 파이썬에서 종료되었다는 알림을받을 수 있습니까?
- 11. iPhone App - 앱이 닫힐 때 알림 팝업 생성
- 12. 푸시 알림을받을 때 모달 표시
- 13. Silverlight : 요소를 이동할 때 어떻게 알림을받을 수 있습니까?
- 14. 보기 컨트롤러가 새보기 컨트롤러를 모달로로드 할 때 알림을받을 수 있습니까?
- 15. 내 앱이 실행 중일 때 앱이 백그라운드에서 백그라운드에서 내 위치를 추적하는 것을 방지하려면 어떻게해야합니까?
- 16. 배치 파일이 Java 끝에서 실행될 때 어떻게 알림을받을 수 있습니까?
- 17. 사용자가보기를 전환 할 때 어떻게 알림을받을 수 있습니까?
- 18. 내 앱이 알림 센터에있을 때 UIRemoteNotificationTypeNone을 어떻게 볼 수 있습니까?
- 19. 응용 프로그램이 닫힐 때 백그라운드 스레드가 응용 프로그램에 의해 종료 될 때를 감지 할 수 있습니까?
- 20. 스프링 보드에서 하나의 앱이 닫힐 때 알 수있는 방법
- 21. Perl에서 백그라운드 프로세스가 종료 될 때 어떻게 알림을받을 수 있습니까?
- 22. 사용자가 벽에 게시물을 쓸 때 알림을받을 수 있습니까?
- 23. WPF Panel에서 자식을 추가/제거 할 때 알림을받을 수 있습니까?
- 24. generalPasteboard에 무언가가 기록 될 때 알림을받을 수 있습니까?
- 25. UIView가 표시 될 때 어떻게 알림을받을 수 있습니까?
- 26. log4j가 실패하면 어떻게 알림을받을 수 있습니까?
- 27. dispatch_async 작업이 완료되면 어떻게 알림을받을 수 있습니까?
- 28. 앱이 배경에있을 때 오디오를 재생할 수 있습니까?
- 29. 창이 닫힐 때 알림
- 30. 내 앱이 파일 시스템에 액세스하는 데 사용하는 사용자는 무엇입니까?
BTW : weak accept ratio, 메이트. –