在android中,一旦从API获取数据,如何在本地保存数据?
我正在使用网络服务开发Android应用程序。到现在为止,每次都会从服务器获得响应。如果网络出现故障,我将无法获取数据。显示空屏幕的活动。我希望本地保存所有数据,而不是显示空屏幕 如果网络出现故障,我想从本地获取并显示 如何做到这一点。请分享你的宝贵意见在android中,一旦从API获取数据,如何在本地保存数据?,android,Android,我正在使用网络服务开发Android应用程序。到现在为止,每次都会从服务器获得响应。如果网络出现故障,我将无法获取数据。显示空屏幕的活动。我希望本地保存所有数据,而不是显示空屏幕 如果网络出现故障,我想从本地获取并显示 如何做到这一点。请分享你的宝贵意见 IOS有核心数据来保存值。如果您的意思是,当您的应用程序第一次获取数据时,您希望将其存储在本地,而当它下次失败时,您希望显示本地存储的数据,那么Android是否有类似的选项。如果我是对的 您可以将获取的数据存储到MySqlite数据库中 请注
IOS
有核心数据来保存值。如果您的意思是,当您的应用程序第一次获取数据时,您希望将其存储在本地,而当它下次失败时,您希望显示本地存储的数据,那么Android是否有类似的选项。如果我是对的
您可以将获取的数据存储到MySqlite数据库中
请注意,每当从web服务中发现新数据时,都会在本地对其进行更新。否则您的数据库中将有旧数据。创建sqlite数据库保存从服务器获取的所有数据 SQLiteDatabase db=getWritableDatabase()
使用自定义内容提供程序(构建在sqlite之上)。互联网上有许多教程介绍如何做到这一点
内容提供者类似于核心数据,因为它们都在sqlite上放置了一个包装器正如我所做的,我总是在网络可用性标签调用WebService并保存到DB中时显示本地数据,而不是从DB中显示
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();