Android設置屏幕旋轉後保存數據

一、onCreate()方法中最後判斷須要保存的狀態值ide

if(savedInstanceState != null){
    mCurrentIndex = savedInstanceState.getInt(KEY_INDEX,0);
}


二、在onCreate()方法後重寫onSaveInstanceState(Budle)方法spa

@Override
public void onSaveInstanceState(Bundle savedInstanceState){
    super.onSaveInstanceState(savedInstanceState);
    Log.i(TAG,"onSaveInstanceState");
    savedInstanceState.putInt(KEY_INDEX,mCurrentIndex);

原理:全部activity的視圖將自身的狀態數據保存在Budle對象中,這樣屏幕旋轉就不會丟失反轉前的數據。.net


須要注意的地方:3d

  • 咱們在Bundle中存儲和恢復的數據類型只能是基本數據類型(primitive type)以及能夠實現Serializable接口的對象。
  • 建立本身的定製類時,如需onSaveInstanceState()方法中保存類對象,須要實現Serializable接口。



相關文章
相關標籤/搜索