如何从android中的API获取本地数据?

时间:2014-09-16 12:35:11

标签: android

我正在使用网络服务做Android应用。截至目前每次都从服务器获得响应。如果网络出现故障我无法获取数据。活动显示空屏幕。我想在本地保存所有数据,而不是显示空白屏幕。

如果网络失败,我想从本地获取并显示。

如何做到这一点。请分享您的宝贵意见。

IOS有核心数据来保存值。 Android是否有任何选项

3 个答案:

答案 0 :(得分:1)

创建sqlite数据库保存从服务器获取的所有数据。

SQLiteDatabase db = getWritableDatabse();

ContentValues contentValues = new ContentValues();
contentValues.put("ID", offlineData.getKey());
contentValues.put("RESPONSE_JSON", offlineData.getJson());
contentValues.put("LAST_UPDATED_TIME",
        String.valueOf(offlineData.getUpdatedTime()));
if(recordId==-1) {
    recordId = db.insert(TABLE_NAME, null, contentValues);
}else{
    recordId = db.update(TABLE_NAME, contentValues, "ID " + "="+offlineData.getKey(), null);
}
db.close();

答案 1 :(得分:0)

如果您的意思是当您的应用第一次提取数据时,您希望在本地存储数据,以及下次要显示本地存储的数据时数据失败。如果我是对的

您可以将获取的数据存储到MySqlite数据库中。 android Database Tutorials

并注意每当从Web服务获得新数据时,都会在本地更新它。否则,您的数据库中将包含旧数据。

答案 2 :(得分:0)

使用自定义内容提供程序(基于sqlite构建)。互联网上的许多教程描述了如何操作

内容提供程序类似于核心数据,因为它们都在sqlite上放置了一个包装器