很多不明白Activity类中包含的onSaveInstanceState和onRestoreInstanceState有什么用,首先声明下使用这两个方法时一定要注意情况和了解Activity的生命周期 ,否则有的时候 onSaveInstanceState和onRestoreInstanceState 可能不会被触发,虽然他们都是Activity的重写方法。(文/Android 开发网)

他 们比较常用到的地方是 Sensor、Land和Port布局的自动切换,过去Android开发网曾经说过解决横屏和竖屏切换带来的数据被置空或者说onCreate被重复调 用问题,其实Android提供的onSaveInstanceState方法可以保存当前的窗口状态在即将布局切换前或当前Activity被推入历史 栈,其实布局切换也调用过onPause所以被推入Activity的history stack,如果我们的Activity在后台没有因为运行内存吃紧被清理,则切换回时会触发onRestoreInstanceState方法。

这两个方法中参数均为Bundle,可以存放类似 SharedPreferences 的数据,所以使用它们作为当前窗口的状态保存是比较合适的。实际使用代码

  1. @Override
  2. protected void onSaveInstanceState(Bundle outState){
  3. outState.putString("lastPath", "/sdcard/android123/cwj/test");
  4. }


  5. @Override
  6. public void onRestoreInstanceState(Bundle savedInstanceState) {
  7. super.onRestoreInstanceState(savedInstanceState);

  8. String cwjString = savedInstanceState.getString("lastPath");
  9. }

更多相关文章

  1. Android file.createNewFile方法问题总结
  2. Android应用程序全屏显示的方法
  3. Android 实现模拟按键方法
  4. Android屏幕横屏竖屏切换的方法
  5. Android WIFI热点默认SSID的修改方法
  6. Android:软件卸载的另一种方法adb uninstall
  7. 优化布局在Android–减少过度渲染
  8. Android 自定义布局对话框避免全屏的设置

随机推荐

  1. Android(安卓)异步消息处理机制 让你深入
  2. Android: Your JS Engine is not always
  3. Android开源框架源码鉴赏:Okhttp
  4. Android(安卓)获取应用的icon、名字、版
  5. android studio 获取sha1和md5值
  6. Android(安卓)KTX简介
  7. Binder 与AIDL
  8. Android(安卓)获取IP地址的实现方法
  9. Android(安卓)Studio下的build工具路径和
  10. android ListView 几个重要属性