2012-10-25 2 views
0

저는 복잡한 응용 프로그램을 가지고 있습니다 : 응용 프로그램 클래스와 많은 Activity 클래스가 공통 Activity에서 Intents로 시작되었습니다.onSaveInstanceState()/onRestoreInstanceState() 큰 응용 프로그램

로그에 따르면 프로세스가 죽어 가고 있습니다. 내 앱을 실행하고 집에 도착한 다음 다른 앱을 한꺼번에 시작한 다음 내 앱으로 돌아갈 때 발생합니다. 로그에서

, 나는 참조 : 11 :

12월 10일부터 25일까지 08.195을 : 나는/ActivityManager (2492) : 프로세스 my.awesome.app (PID 20860)이 사망했다.

my.awesome.app은 앱이 다시 시작될 때 주 활동의 onCreate() 메소드를 거칩니다.

그러나 올바른 화면으로 안내하는 인스턴스 변수가 앱이 사망했을 때의 값을 유지하지 못하기 때문에 잘못된 화면이 표시됩니다. 사실, 나는 그것이 시스템에 의해 살해되고 다시 삶으로 돌아온 것처럼 앱이 너무 많이 죽지 않기를 바라고있다.

코드를 보면 onSaveInstanceState()/onRestoreInstanceState() 메서드가 없어서 제공해야 할 필요가 있습니다.

질문은 어떤 활동이 onSaveInstanceState()/onRestoreInstanceState()를 제공해야하는지/그들이 한 일에 반응합니까?

두 가지 활동이 깊이 있다고 가정 해 봅니다. 즉, 응용 프로그램 클래스가 활동을 실행하기 위해 스레드를 시작한 활동 클래스를 시작했으며 자체가 의도를 통해 다른 활동을 실행하고 있다고 가정 해 보겠습니다.

모든 관련 클래스가 onSaveInstanceState()/onRestoreInstanceState()에 제공/대응해야합니까? 그게 바로 Application 클래스일까요? 저를 잘못된 화면으로 보내는 부적절한 값을 감지하고있는 곳입니까?

답변

0

onSave/onRestoreInstanceState는 실제로 응용 프로그램 전체 설정이 아닙니다. 하나의 활동에만 적용되는 설정에 더 적합합니다.

프로세스가 종료 된 후에도 항상 특정 활동으로 돌아가려면 마지막 열었던 상태를 환경 설정에 저장 한 다음 주 실행기 활동의 onCreate에서 다음을 기준으로 원하는 활동을 실행해야합니다. 저장된 기본 설정의 값.

관련 문제