2013-09-24 3 views
1
public void onSaveInstanceState(Bundle outState) 
{ 
    super.onSaveInstanceState(outState); 
    outState.putInt("x", x); 
} 

번들을 저장할 때 번들 변수가 정확히 어디에 저장됩니까? 어디에서나 찾을 수 없습니다.활동에 번들 변수가 저장되는 위치는 어디입니까?

+1

코드에 오류가 있습니다! – ashu

+0

수정 사항이 수정되었습니다 ... 신고 해 주셔서 감사 드리며, 처음 수정시 통지하지 않았습니다. 복사하여 붙여 넣기 만했습니다. – gunar

답변

1

을 보여, 당신은 여기에 무슨 일이 일어 났는지 이해하기 위해 소스 코드를 읽을 수 있습니다. 소스 코드에서

protected void onSaveInstanceState(Bundle outState) { 
     outState.putBundle(WINDOW_HIERARCHY_TAG, mWindow.saveHierarchyState()); 
     Parcelable p = mFragments.saveAllState(); 
     if (p != null) { 
      outState.putParcelable(FRAGMENTS_TAG, p); 
     } 
     getApplication().dispatchActivitySaveInstanceState(this, outState); 
    } 

, 그것은 국가가 Application에 의해 관리됩니다 볼 분명하다. 활동이 파괴되면 응용 프로그램은 관련 상태를 저장하는 데 도움을 줄 수 있습니다. 그러나 응용 프로그램이 종료 된이 상황을 만난 적이 있다면 모든 주를 잃어 버렸을 것입니다. 그래서 모든 국가는 선호도와 같은 파일이 아니라 기억 속에 있다고 생각합니다.

1

글쎄, 나는 그것을 찾을 수 없을 것이라고 생각하며, 어딘가에서 직접 언급 할 것으로 기대하지 않습니다.

그러나 콘텐츠는 활동이 다시 생성 될 때 onCreate(savedInstanceState)에서 사용할 수 있습니다. 해당 설명서에서 발췌 : savedInstanceState: If the activity is being re-initialized after previously being shut down then this Bundle contains the data it most recently supplied in onSaveInstanceState(Bundle). Note: Otherwise it is null

의 콘텐츠를 볼 수있는 또 다른 장소는 내가 당신이 INT, 문자열을 설정해야합니다 생각 모르겠습니다 또는 INT 하자에 저장하도록 을 원하는 onRestoreInstanceState(savedInstanceState)

0

입니다 나를 android reference뿐만 아니라 당신에게

public void onSaveInstanceState(Bundle state){ 
super.onSaveInstanceState(state); 
Int i = 1; 
state.putInt("s",i); 


} 
관련 문제