2012-11-13 2 views
3

으로 전화했습니다. 나는 다른 모든 사람들에게 반대되는 문제가있는 것 같습니다. :)onSaveInstanceState는 항상

한 활동에서 다음 활동으로 이동할 때마다 내 onSaveInstanceState가 호출됩니다. LogCat을 체크했는데 확실히 활동을 죽이지는 않습니다. 또한 반환 할 때 onRestoreInstanceState가 호출되지 않았으므로 여전히 메모리에 있어야합니다.

메모리를 늘리거나 방향을 변경하는 중에 만 호출되는 것으로 생각했습니다.

+0

'onSaveInstanceState'가 호출되면서 어떤 문제가 있습니까? – fiddler

+0

데이터를 serialize하고 번들에 저장해야하기 때문에 시간 낭비 일 것 같습니다. 세계 은행의 종말은 그것이 필요하지 않으면 낭비되는 것 같지 않습니다. – theblitz

+0

불행히도이 메서드가 호출되는 방법에 대한 제어권을 가질 수 있다고 생각지 않습니다. – fiddler

답변

5

예, 활동이 일시 중지되면 onSaveInstanceState()이 호출됩니다. 일단 활동이 일시 중지되면 Android는 언제든지 다른 라이프 사이클 메소드를 호출하지 않고 프로세스를 종료 할 수 있기 때문입니다. 프로세스가 종료되기 전에 활동이 재개되면 안드로이드는 onRestoreInstanceState()에 전화 할 필요가 없다는 것을 깨닫습니다 (즉, 최적화입니다).

0

의사가 말하는 내용은 무엇입니까?

"이 메서드를 호출하면 onStop()보다 먼저 발생하며 onPause() 전후에 발생할지 여부는 보장되지 않습니다."