转自:http://blog.chinaunix.net/uid-22985736-id-2977672.html

 

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);
}

相关文章:

  • 2022-12-23
  • 2021-12-03
  • 2021-11-22
  • 2021-08-02
  • 2021-07-13
  • 2022-12-23
  • 2021-10-24
  • 2021-07-30
猜你喜欢
  • 2021-08-30
  • 2022-12-23
  • 2022-02-07
  • 2021-07-05
  • 2021-06-15
  • 2022-12-23
相关资源
相似解决方案