在Android中保存和恢复MapView的最佳方法是什么?

时间:2010-02-01 14:49:48

标签: android

我有MapActivity,其中包含MapView,其中包含一些自定义控件,状态信息以及由我使用默认方法绘制的某些位置组成的ItemizedOverlay(使用{{1} }},populate()super.draw())以及我在覆盖的createItem()方法中绘制的某些行。

因此,当活动暂停时,我必须保存:

  1. 一些州信息
  2. ItemizedOverlay
  3. [将来可能会覆盖更多。]
  4. 我像往常一样保存状态信息,将它们放入捆绑包中。我正在考虑对draw()执行相同操作,在每个Overlays中实现Parcelable等等,但我不知道是否有更好的方法来存储完整状态OverlayItems

    信息取决于每次活动暂停时我不想重复的远程请求。

    任何建议?

2 个答案:

答案 0 :(得分:0)

如果从远程请求获得有关OverlayItems的所有信息,最简单的解决方案是将最后一个请求输出存储在文件中。

在活动重启时,检查兑现请求输出是否可用(并且可能仍然有效),而不是使用现有方法从中提取数据。

例如,如果从远程KML或JSON获取POI,则可以使用现有解析器从本地文件中提取数据。

答案 1 :(得分:0)

可以使用具有完整onRetainNonConfigurationInstance()或具有感兴趣的getLastNonConfigurationInstance()的数组的一般解ActivityObjects。然后在onCreate()中可以重新生成View