Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中,一旦从API获取数据,如何在本地保存数据?_Android - Fatal编程技术网

在android中,一旦从API获取数据,如何在本地保存数据?

在android中,一旦从API获取数据,如何在本地保存数据?,android,Android,我正在使用网络服务开发Android应用程序。到现在为止,每次都会从服务器获得响应。如果网络出现故障,我将无法获取数据。显示空屏幕的活动。我希望本地保存所有数据,而不是显示空屏幕 如果网络出现故障,我想从本地获取并显示 如何做到这一点。请分享你的宝贵意见 IOS有核心数据来保存值。如果您的意思是,当您的应用程序第一次获取数据时,您希望将其存储在本地,而当它下次失败时,您希望显示本地存储的数据,那么Android是否有类似的选项。如果我是对的 您可以将获取的数据存储到MySqlite数据库中 请注

我正在使用网络服务开发Android应用程序。到现在为止,每次都会从服务器获得响应。如果网络出现故障,我将无法获取数据。显示空屏幕的活动。我希望本地保存所有数据,而不是显示空屏幕

如果网络出现故障,我想从本地获取并显示

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


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();