宁静的服务和本地数据库Android

时间:2015-04-18 12:25:35

标签: android rest

我开发了一个Android移动应用程序,我用这个tutorial创建了一个宁静的Api。但通过这种方式,数据仅在设备连接到Internet时出现。我希望数据存在且没有互联网连接。我应该创建一个本地数据库还是有其他方式吗?

2 个答案:

答案 0 :(得分:0)

从我的观点来看,您的方法似乎正确,因为您必须从服务器获取更多数据。因此不建议使用共享首选项和内部存储。

  1. 您可以在从Internet上获取数据时首次在本地存储数据。当net可用时,您使用rest api获取数据,那时您更新现有记录,如果没有任何记录,那么您可以将该记录作为新记录插入,以便您拥有更新的数据。当没有互联网连接时,您可以从数据库访问数据并显示它。
  2. Sqlite是更好的选择。它是一种用于移动平台的轻量级数据库系统。如果你知道,那么你可以考虑看看这个example

答案 1 :(得分:0)

您有三种方法可以在智能手机上缓存json数据

  1. 将json保存为简单文件:todos.json
  2. 使用SharedPreferences
  3. 将json保存为字符串
  4. 将json保存为数据库中的字符串或二进制数据,如Sqlite。请求网址可以是ID
  5. 您采用哪种方法取决于您的数据量。像 Android Killer 我更喜欢Sqlite,因为它是管理应用程序数据的优雅方式。


    您可以实现所有三种方法并进行比较。此外,您还将了解很多关于FileIOSharedPreferencesSqLite的信息。

    伪代码示例:

    public String loadData(String url){
    
        Cache cache = new FileCache(); // new SqLiteCache() or new SharedPreferencesCache()
    
        String json = cache.get(url);        
        if(json == null){
            cache.put(url, json = MyNetworkUtil.loadJSON(url));
        }
    
        return json;
    }