在Android设备上本地缓存Google Places API数据以获取历史记录功能

我正在使用Google Places API开发Android应用程序,并希望为用户访问的地点详细信息活动实施搜索历史记录ListView活动。 那么用户可以进入此页面并在此处查看搜索历史记录,而无需执行其他搜索。 这将增加用户体验,并减少返回到Google Places数据库的API调用数量。

我只会显示地点名称和地址,而不是别的。

所以我做了一些研究,发现这可以通过缓存数据并使用以下方法恢复活动来实现:

共享首选项

内部存储器

SQLite数据库

在上述选项中,共享偏好设置似乎适用于设置和偏好设置,最后2项可以满足我的要求。

第一个问题:我是否允许在设备上本地缓存Google Places API数据并将其检索回来显示在历史活动中? 我的应用程序没有数据库,所以本地设备存储将是唯一的选择。我也检查了下面的链接,他们说我可以缓存或存储place_id而不是服务以外的其他内容。 这意味着我可以在应用程序或内部设备存储中缓存地点名称和地址? 如果我只能存储place_id,那么每次用户访问历史活动时,是否必须进行单独的API调用以检索地点名称和地址? 如果用户有50个列表呢?

https://developers.google.com/places/web-service/policies#pre-fetching_caching_or_storage_of_content

https://developers.google.com/maps/terms#section_10_5

第二个问题:如果允许我使用哪一个来存储和加载n个数据作为历史记录,那么在用户定期清除它们之前,这个数据会变得很多。

请帮忙?


我建议您使用SharedPreferences ,对于任何特定的偏好设置,所有客户端共享此类的单个实例。 对首选项的修改必须通过SharedPreferences.Editor对象,以确保首选项值保存在一致的状态下,并在它们被提交到存储时保持控制。 从各种get方法返回的对象必须被应用程序视为不可变的。 用于访问和修改由getSharedPreferences(String,int)返回的首选项数据的接口

要在共享首选项中存储值:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("Name","Harneet");
editor.apply();

从共享首选项中检索值:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
String name = preferences.getString("Name", "");
if(!name.equalsIgnoreCase(""))
{
    name = name + "  Sethi";  /* Edit the value here*/
}
链接地址: http://www.djcxy.com/p/63169.html

上一篇: Caching Google Places API data locally on Android device for history feature

下一篇: Can I store names of Google Places API if I refresh them every 30 days?