2010-02-01 42 views
3

我有一個包含一些自定義控制,狀態信息,以及一個ItemizedOverlay由我畫使用默認方法某些位置由MapView一個MapActivity(使用populate()super.draw()createItem()),並通過我在overrided得出一些線draw()方法。在Android中保存和恢復MapView的最佳方式是什麼?

所以,當活動被暫停,我要救:也許更多疊加在未來]

  1. 一些狀態信息
  2. 的ItemizedOverlay

我像往常一樣保存狀態信息,將它們放入捆綁包中。我正在考慮與Overlays一樣,在OverlayItems的每一箇中都執行Parcelable等等,但我不知道是否有更好的方法來存儲MapViews的完整狀態。

該信息取決於遠程請求,我不希望在每次活動暫停時重複這些請求。

任何推薦?

回答

0

如果有關OverlayItems的所有信息都是從遠程請求獲取的,最簡單的解決方案是將最後一個請求輸出存儲在文件中。

在活動重新啓動時,您檢查兌現請求輸出是否可用(並且可能仍然適合您的需要),並使用現有方法從中提取數據。

例如,如果您從遠程KML或JSON獲取POI,則也可以使用現有解析器從本地文件中提取數據。

+0

是的,這是一個很好的解決方案,當你想長時間保持狀態。但是我們的問題是在其他情況下,其中'onPause'被稱爲方向變化等等。 – 2010-06-22 08:41:58

0

作爲通用解決方案onRetainNonConfigurationInstance()getLastNonConfigurationInstance()可以使用完整的Activity或者可以使用具有感興趣的Objects的陣列。然後在onCreate()View可以重新生成。

相關問題