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


1、onCreate()方法中最后判斷需要保存的狀態值

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


2、在onCreate()方法后重寫onSaveInstanceState(Budle)方法

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

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


需要注意的地方:

  • 我們在Bundle中存儲和恢復的數據類型只能是基本數據類型(primitive type)以及可以實現Serializable接口的對象。
  • 創建自己的定制類時,如需onSaveInstanceState()方法中保存類對象,需要實現Serializable接口。






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM