2011-10-04 2 views
2

나는 네트워크에서 거대한 데이터 세트를 가져 오는 활동이 있으며 DVM이이 활동을 파괴하기로 결정한 경우 (낮은 기억 상태로 인해) 나는이 활동을위한 시나리오를 다루기를 원합니다. 네트워크에서 동일한 데이터를 다시 가져와야합니다. 이 일을 어떻게 하느냐. 제안해라.귀하의 활동을 죽이는 DVM 처리

감사 활동의 번들에 당신이 (가 원시적 형의 경우) 데이터를 전달할 수있는 구세주 데 필요한 데이터에 따라 쿠마

답변

2

및 활동의 onPause 메서드를 재정의합니다. onPause 메서드는 작업이 닫힐 때마다 호출됩니다.

은 참조를 위해 활동의 라이프 사이클을 참조하십시오 http://developer.android.com/reference/android/app/Activity.html

데이터를 저장하는 다른 방법이있다 - 활동이 닫혀있는 경우 SD 카드에 파일을 직접 작성하고 다음 onPause 방법에 스트림을 닫을 수는 데이터를 완료하지 않고 OS에서

활동을 다시 열면 활동의 onResume 메소드가 호출되고 번들 또는 SD 카드에 기록 된 파일에 저장된 데이터를 읽습니다.

+0

onSavedInstanceState()를 사용하여 동일한 작업을 수행 할 수 없습니다. – Deva

+0

기본적으로, Activity에 대한 문서에 따르면 onSaveInstanceState()는 라이프 사이클의 일부가 아니므로 Activity가 시작되거나 중지 될 때마다 호출 할 필요는 없습니다. 참조 : http://developer.android.com/reference/android/app/Activity.html#onSaveInstanceState(android.os.Bundle). 그래서 OS가 활동을 죽일 계획이라면 그것은 활동을 죽이고 반드시 onSaveInstanceState()를 호출 할 필요는 없지만 활동을 죽일 때마다 onPause()를 호출합니다. – Darwind

+0

두 시나리오가있을 수 있습니다 : 1> 살해되는 활동이 포 그라운드에있을 때 2> 살해되는 활동이 배경에있을 때. 상황이 다양할까요? 2에 대한 android 개발자 인 http://developer.android.com/reference/android/app/Activity.html#ProcessLifecycle에서 "프로세스를 종료해야하는 경우, 사용자가 다시 액티비티를 탐색 할 때 onCreate (Bundle) 메서드는 이전에 onSaveInstanceState (Bundle)에서 제공 한 savedInstanceState와 함께 호출되어 사용자가 마지막으로 남긴 사용자와 동일한 상태로 다시 시작할 수 있습니다. " 그래서 whenPause – Deva

관련 문제