我想使用retrofit
库将数据发送到服务器。
我想知道如何在网络恢复后将数据重新发送到服务器
public void sendPost(String title, String body) {
mpiService.savePost(title, body, 1).enqueue(new Callback<Post>() {
@Override
public void onResponse(Call<Post> call, Response<Post> response) {
if(response.isSuccessful()) {
showResponse(response.body().toString());
Log.i(TAG, "post submitted to API." + response.body().toString());
}
}
@Override
public void onFailure(Call<Post> call, Throwable t) {
Log.e(TAG, "Unable to submit post to API.");
}
});
}
我知道我应该创建数据库并使用broadcast
检查状态
我想知道如何使用数据字段或jSONArray
将数据存储到数据库吗?
请帮助我创建数据库
答案 0 :(得分:0)
您可以将领域用于本地数据库。它易于使用,速度更快,文档完善并支持各种平台。有关更多详细信息,请访问其官方网站:https://realm.io/docs/java/latest/
答案 1 :(得分:0)
您有很多选择:
1)SQLiteOpenHeleper:
您可以使用SQLiteOpenHelper类将数据存储到SQLite数据库中。
对于一个简单的实现,请观看此链接: Android SQLite Example
2)房间资料库:(推荐)
这是由Google编写的出色的库,它在SQLite上提供了一个抽象层,以在利用SQLite的全部功能的同时允许更健壮的数据库访问。
有关简单实现的信息,请查看以下链接: A Beginner’s Guide to the Room Persistence Library Room Persistence Library
3)共享首选项: 如果您有简单的数据,则可以通过“共享首选项”进行存储。它不是数据库。共享首选项允许您以设备数据文件夹中xml文件内的键,值对形式保存和检索数据。
对于一个简单的实现,请观看以下内容: How to use SharedPreferences in Android to store, fetch and edit values
4)领域: Realm是一个移动数据库,是SQLite的替代品。 Realm并未使用SQLite作为引擎。相反,它具有自己的C ++内核,旨在提供SQLite的移动优先方法。
您可以通过以下链接学习它: How to use Realm for Android like a champ, and how to tell if you’re doing it wrong
5)ETC 还有其他一些类型,例如File(读/写)和greenDao。您可以通过简单的谷歌搜索来学习它们:)