2011-09-13 8 views
0

인터넷에서 다운로드 한 데이터로 채워지는 listview가 있습니다. 따라서 onCreate() 메서드에서 비동기 작업을 실행하여 정보를 다운로드하고 listview에 저장합니다.Android에 상태 저장

saveInstanceState() 메소드에서 목록을 다운로드했는지 여부에 상관없이 사용자가 홈 버튼에서 앱을 빠져 나와 반환하면 부울 값이 배치됩니다. 그러나 사용자가 뒤로 버튼을 통해 프로그램을 종료하면 saveInstanceState() 메서드가 실행되지 않습니다.

목록을 다시 다운로드하지 않으려는 경우 전에 다운로드했는지 어떻게 확인할 수 있습니까?

답변

0

Activity.onBackPressed()를 재정 의하여 상태를 저장할 수도 있습니다. 응용 프로그램의 수명주기를 넘어 데이터를 유지하려면

또한, 당신이

void onPause() { 
    if(isFinishing()) { 
     // save your state. maybe you'd be better off with using preferences (or other things suggested by people here), so you don't need to worry about the instance state. 
    } 
} 
+0

있습니까? 나는 그것이 확실하지 않을 것입니다 – Spidy

+0

흠, 확실하지 않습니다. 나는 당신이 그것을 시도해야 할 것 같아요. BTW, 나는 단지 이것에 대한 또 다른 생각을 가지고있다. 나는 위의 대답에 넣을 것이다. – Macondo2Seattle

1

에 체크를 아웃 : 는 라이프 사이클 콜백 http://developer.android.com/guide/topics/fundamentals/activities.html

를 사용하여 콜백이 사용자의 작업에 무슨 눈치 nesseceray 경우 반응하려면 구현.

당신은 키 - 값 데이터를 저장하는을 공유 환경 설정을 사용할 수 있습니다 : 당신은 응용 프로그램이 재발하는 경우, 번들이로드 될 것이라고 확신 http://developer.android.com/guide/topics/data/data-storage.html