1

我的应用程序从android.location.Geocoder;类中调用getFromLocationName,目前在我的活动中进行处理,该活动还显示一些关于该调用结果的数据。Android;缓存地理编码数据?

这可能很慢,例如在活动首先加载它之前必须先完成各种调用,并且这依赖于网络连接。

一旦有了结果,我并不真的需要刷新(我的意思是如何经常做的地点和地理坐标改变?)

我的问题:我怎样才能最好的避免必须查询每次我的应用程序运行时这些数据。我应该使用一种在启动时加载它们的服务吗? (如果必须查询50次以上,可能会很慢)。或者我应该打电话,将结果存储在SQL中,然后只在下次查询时才查询结果?

回答

2

如果你想快速缓存它,我建议将最新的结果存储在SQLite数据库中。如果你不需要其他的数据库,你甚至可以使用PreferenceManager来快速存储。只需存储最新的坐标和日期时间,然后检查日期时间在X分钟或X小时后是否过期(如果这是您想要的)。

+0

那么我不需要SQL lite来完成其他任何事情(在这个阶段)。是否有任何性能折衷考虑,即比每次手动查询位置服务更快? – Jimmy 2010-11-05 22:28:27

+1

@詹姆斯我会说最重要的因素是1)它本地存储在你的手机上并且快速访问2)让你的gps坐标需要一段时间才能锁定gps(或者通过手机信号塔if GPS关闭)。所以速度明智会很快,但最大的问题是你的最后一次GPS坐标是“冷”还是陈旧(最近)。而且你还是必须第一次找到坐标。用户可能会移动很多(如果说一辆汽车)。我仍然认为缓存可能会对你有帮助(也许给用户一个手动的GPS刷新选项?) – 2010-11-05 22:34:11

+0

听起来不错,那么SQL Lite的初始查询和存储/读取应该是全部驻留在服务中还是安全的保留在活动? (只是在这里插入建议) – Jimmy 2010-11-05 22:37:43