首页 > 代码库 > 读书笔记--Android编程权威指南

读书笔记--Android编程权威指南

1.设备旋转前保存数据

当屏幕旋转时会销毁当前Activity然后再新建一个Activity,这样会造成数据的丢失。通过覆盖onSaveInstanceState(Bundle outState)方法来保存数据。

 @Override    protected void onSaveInstanceState(Bundle outState) {        super.onSaveInstanceState(outState);        Log.i(TAG,"onSaveInstanceState");        outState.putInt(KEY_INDEX,mCurrentIndex);    }    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_quiz);        if (savedInstanceState!=null){            mCurrentIndex=savedInstanceState.getInt(KEY_INDEX,0);        }        mQuestionTextView=(TextView)findViewById(R.id.question_text);        updateQuestion();        mTrueBtn= (Button) findViewById(R.id.true_btn);        mFalseBtn= (Button) findViewById(R.id.false_btn);        mNextButton= (Button) findViewById(R.id.next_button);        mPrevBtn= (Button) findViewById(R.id.prev_button);        mTrueBtn.setOnClickListener(this);        mFalseBtn.setOnClickListener(this);        mNextButton.setOnClickListener(this);        mPrevBtn.setOnClickListener(this);    }

有一点需要注意的是,Bundle中存储和恢复的数据只能是基本数据类型和可以实现Serializable接口的对象。

读书笔记--Android编程权威指南