【问题标题】:Android Storing Polygon and LongLat values between activitesAndroid在活动之间存储多边形和Long Lat值
【发布时间】:2016-10-10 16:20:55
【问题描述】:

我正在尝试创建一个具有 3 个活动的 android 应用程序。主屏幕包含信息摘要(当前为静态文本),其中一个导航链接指向地图活动。

当我导航回主菜单并将它们返回到地图时,它会从地图中清除多边形,并且还会丢失用户之前遵循的路线。这是因为当再次导航到地图活动时,它会再次调用初始化这些值的 create 方法。

我应该可以在其他地方初始化这些,还是应该在用户离开此活动时将它们保存在 SharedPreferences / Intents 中,并在再次调用 create 方法时重新加载它们?

最初我希望持久化以下对象,如果我可以有一个自定义类来保存所有用户地理数据并在返回地图时加载它,那就太好了。

private ArrayList<LatLng> routePoints;
Polygon geoFencePolygon;

我已经阅读了几篇文章,但我是 Android 开发的新手,因此不确定哪种方法适合存储这样的数据,因为我想确保我做的事情正确。

最终,即使他们导航到应用程序中的任何位置,我也需要保持位置跟踪运行,但我首先要学习基础知识 :)

【问题讨论】:

    标签: android android-intent sharedpreferences state


    【解决方案1】:

    您似乎正在开发一些地理融资或 GPS 跟踪应用程序 即使他不在地图活动中,您也想继续运行您的位置跟踪或某些过程 并且您还想将数据存储在临时位置

    我认为您应该使用从您的第一个活动开始的 android 服务来跟踪您的位置并存储它 某处。因此,当您访问地图活动时,您可以一次获得所有位置数据。

    我将建议使用 SQLITE 来存储您的位置,其中包含共享首选项 当您不再需要该位置数据时,您可以删除表格

    【讨论】:

    • 应该实时完成吗?我希望我可以在用户停止旅程之前保持详细信息的状态,但是最好的做法是只在 SQLITE 或类似中维护所有详细信息?如果是这样,我现在会调查一下。我有位置跟踪工作,但它不在主要活动中,是否应该将其移至服务,然后确保它在活动之间移动时保持记录位置或应用程序被最小化?
    • 是的,GPS 的事情应该在服务中完成,如果你想记录你的 gps,它应该存储在 sqlite 中。如果它是跟踪应用程序而不是我建议你也应该在它被最小化时跟踪。意味着在您的应用不需要跟踪之前,您不应停止服务
    • 您认为这是服务或 IntentService 的理想选择吗?看来我不希望主线程被这个运行阻塞。如何将数据从服务传递回其他需要它的活动?写入 SQL 然后回读似乎有点笨拙,所以我猜有更好的方法让应用程序刷新路由,然后将其存储在 SQL 中?
    • 即使他正在进行其他活动,您是否想在整个申请期间存储您的溃败?如果是,那么我认为最好的地方是 sqlite,而不是共享偏好。我会说服务会是最好的。
    猜你喜欢
    • 1970-01-01
    • 2010-12-26
    • 1970-01-01
    • 1970-01-01
    • 2017-11-01
    • 1970-01-01
    • 2017-07-03
    • 2013-03-21
    • 1970-01-01
    相关资源
    最近更新 更多