onSaveInstanceState()及其配对方法_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2115 | 回复: 0   主题: onSaveInstanceState()及其配对方法        下一篇 
yang.wang
注册用户
等级:中士
经验:217
发帖:82
精华:0
注册:2011-12-28
状态:离线
发送短消息息给yang.wang 加好友    发送短消息息给yang.wang 发消息
发表于: IP:您无权察看 2015-5-8 14:44:16 | [全部帖] [楼主帖] 楼主

onSaveInstanceState() 和 onRestoreInstanceState()不属于Activity的生命周期,只有意外销毁一个Activity时才被调用,如内存不足,按下了HOME键(注:按下BACK键则是主动销毁一个Activity,这两个方法不会被调用)。当需要改变屏幕方向时,也可以用这两个方法来暂存一些数据。

下面百度地图应用中的例子,就用到了这两种方法,用来保存和恢复地图的视图。

@Override
protected void onSaveInstanceState(Bundle outState) {
      cPoint = mapView.getMapCenter(); //得到当前MapView的中心点。
      outState.putInt("lat", cPoint.getLatitudeE6()); //暂存在outState中
      outState.putInt("lon", cPoint.getLongitudeE6());
      super.onSaveInstanceState(outState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
      int lat = savedInstanceState.getInt("lat"); //从保存的数据中恢复
      int lon = savedInstanceState.getInt("lon");
      cPoint = new GeoPoint(lat, lon);
      super.onRestoreInstanceState(savedInstanceState);
}


--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论