我有MapActivity
,其中包含MapView
,其中包含一些自定义控件,状态信息以及由我使用默认方法绘制的某些位置组成的ItemizedOverlay
(使用{{1} }},populate()
和super.draw()
)以及我在覆盖的createItem()
方法中绘制的某些行。
因此,当活动暂停时,我必须保存:
我像往常一样保存状态信息,将它们放入捆绑包中。我正在考虑对draw()
执行相同操作,在每个Overlays
中实现Parcelable
等等,但我不知道是否有更好的方法来存储完整状态OverlayItems
。
信息取决于每次活动暂停时我不想重复的远程请求。
任何建议?
答案 0 :(得分:0)
如果从远程请求获得有关OverlayItems
的所有信息,最简单的解决方案是将最后一个请求输出存储在文件中。
在活动重启时,检查兑现请求输出是否可用(并且可能仍然有效),而不是使用现有方法从中提取数据。
例如,如果从远程KML或JSON获取POI,则可以使用现有解析器从本地文件中提取数据。
答案 1 :(得分:0)
可以使用具有完整onRetainNonConfigurationInstance()
或具有感兴趣的getLastNonConfigurationInstance()
的数组的一般解Activity
和Objects
。然后在onCreate()
中可以重新生成View
。