当Activity被pause或者stop,这时Activity的运行状态仍然存在在内存中,这时就要进行现场保护,使得用户在重新打开Activity的时候直接回到刚刚的状态。除非内存中Activity状态的那块内存被系统其它程序覆盖,这时候唯有重新创建Activity。
如何进行现场保护:
重写onSaveInstanceState()方法。这样可以在系统将程序杀死之后保存部分信息,用Bundle对象保存。
当程序窗口重新启动,再使用与之配套的onRestoreInstanceState()方法再取出状态信息。
那么现场保护的信息存到哪里才可以在Activity下次被创建(即下次调用onCreate方法)的时候可以被取出?
1>写入到数据库中
2>写入到xml文件中
存在本程序的变量中,只有内存周期,很快被销毁。
所以,应该在onPause方法中,将状态信息保存到数据库。然后在onCreate方法中取出。