2013-08-22 5 views
0

버튼에서 의도를 사용하면 다른 활동으로 이동 한 다음 나중에 원래 활동으로 돌아갑니다.onSavedInstanceState가 작동하지 않을 때

다른 액티비티에 대한 액티비티를 종료 할 때 두 개의 정수를 저장하려고 시도한 다음 나중에 원래 액티비티로 돌아갈 때 해당 번들에 대해 null을 얻습니다.

왜이 기능이 작동하지 않는지 아는 사람이 있습니까?

나는 화면 회전시 변수를 저장하기 위해 savedInstanceState 번들을 사용했으며이 상황에서 작동하지만 다른 활동을 보려고 떠났을 때 나중에이 활동으로 돌아 오면 번들이 저장되지 않았습니다. 돌아올 때 null을 얻는다.

onSavedInstanceState 방법

@Override 
public void onSaveInstanceState(Bundle outState){ 
super.onSaveInstanceState(outState); 

outState.putInt("index", index); 
outState.putInt("top", top); 

} // end onSavedInstanceState 

savedInstatnceState를 얻기위한 코드를 포함에서 onCreate 방법의 첫 번째 부분은 저장된 변수

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_inspectioninfoselectionlist); 

    if(savedInstanceState!=null){ 
     index = savedInstanceState.getInt("index"); 
     top = savedInstanceState.getInt("top"); 
     Log.i("$$$$$$$", "value of index and top returned after activity starts" + index + " " + top); 
    }else if (savedInstanceState == null){ 
     Log.i("$$$$$$$", "saved instance state is null" + index + " " + top); 
    } 

답변

1

onSaveInstanceState()이 구성 변경은 화면으로 발생할 때 호출 될 오리엔테이션, 언어 변경 등
다른 활동을 여는 것은 구성 변경이 아니므로 메소드가 호출되지 않습니다.