응용 프로그램 백그라운드 서비스가 sqlite 데이터베이스를 업데이트합니다. 따라서 제 활동이 시대에 뒤 떨어지고 있습니다. 활동 의도에는 오래된 매개 변수도 들어 있으므로 onCreate, onResume은 애플리케이션을 중단시킵니다. 가장 쉬운 해결책은 전체 응용 프로그램을 다시 시작하는 것입니다. 하나의 특별한 경우를 처리하기 위해 모든 활동에 모든 onCreate, onResume 메소드에 IF를 추가하고 싶지 않습니다.System.exit (0)은 실제로 그렇게 위험한가요?
예외가 처리 된 후 ACRA 코드가 실행 된 것을 확인했습니다.
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(10);
그러나 많은 사람들은 System.exit(0)
의 사용을 권장하지 않습니다. System.exit(0)
은 정말 Android 애플리케이션의 데이터 무결성에 위험한 요소입니까? 물론 내 코드는 기존 데이터베이스를 닫을 것입니다.
업데이트 :
내가 그러나 등, 이러한 방법의 각을 finish()
, 컨텐츠 제공 업체를 사용하는 방송을 보내, 여기에 SO에 많은 답변을 읽는 방법을 알고 코드의 추가 수천 라인이 필요합니다. 10 분 안에 System.exit(0)
으로 솔루션을 구현했습니다. 다시 시작하는 속도가 빠르기 때문에 일반적인 startActivity 동작과 구별 할 수 없습니다. db 업데이트/다시 시작은 사용자가 더 이상 사용하지 않으면 시스템에서 이미 일시 중지됩니다. 내 앱에는 실시간 동기화가 필요하지 않습니다. 테스트 중에 응용 프로그램이 올바르게 작동합니다. 이것은 빠르고 더러운 해결책입니다.
따라서 가능한 부작용은 System.exit(0)
입니다. 내가 어떻게 다르게 디자인을 할 수있는 것은 아닙니다. 나는 현재의 디자인이 완벽하지 않다는 것을 안다.
[응용 프로그램을 닫고 Android에서 홈 화면 시작] 가능한 복제본 (http://stackoverflow.com/questions/2042222/close-application-and-launch-home-screen-on-android) – auselen