重新建立连接后,将数据重新发送到服务器

时间:2019-01-04 17:19:40

标签: android database retrofit rx-java broadcast

我想使用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将数据存储到数据库吗?

请帮助我创建数据库

2 个答案:

答案 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。您可以通过简单的谷歌搜索来学习它们:)