java - 离线保存 Blogger 提取的数据
问题描述
我正在开发一个使用 Google Blogger API 从 Blogger 获取数据的应用程序。但问题是每次用户打开应用程序时,它都会获取数据并显示它。我希望数据必须在第一次打开应用程序时存储,并且有一个刷新按钮选项,当单击该按钮时,它将刷新数据并再次离线保存。
这是我在主要活动中的 getData 方法的代码:
private void getData(){
Call<PostList> postList = BloggerAPI.getService().getPostList();
postList.enqueue(new Callback<PostList>() {
@Override
public void onResponse(Call<PostList> call, Response<PostList> response) {
PostList list = response.body();
recyclerView.setAdapter(new PostAdapter(MainActivity.this, list.getItems()));
Toast.makeText(MainActivity.this, "Success", Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(Call<PostList> call, Throwable t) {
Toast.makeText(MainActivity.this, "Failure", Toast.LENGTH_SHORT).show();
}
});
}
PS:我想用这个创建一个教程类型的应用程序。这是创建教程应用程序的好方法吗?我到处找,但没有找到确切的解决方案,所以想由博主创建它。
解决方案
您可以在 SQLite 中本地保存数据并使用 DAO 使事情变得更容易,或者如果您需要一些 Rx 解决方案,可以研究 SqlDelight 和 SqlBrite。还有像 Couchbase 这样的存储解决方案,它们是 nosql。最后,您可以将数据存储在共享首选项中,甚至直接使用文件系统,尽管在这种情况下我不提倡使用其中任何一种
推荐阅读
- angularjs - 在 AngularJS 中模拟 location.href
- python - 多列数据帧的各个列的自动散点图生成
- java - 循环中的 Java StyledDocument insertString()
- java - 你好,我是java初学者,不知道怎么解决
- javascript - 如何在 JS 中显示 HTML 实体?它总是显示角色
- json - 日期序列化忽略 REST 请求中的 ContextResolver
- android - 更改 StatusBar 颜色并同时显示 ActionMode
- angular - 在 Angular 9 中,如何在 ng 构建期间替换 assets 文件夹中的配置文件?
- client-certificates - 如何从命令行打开 p7s 文件?
- python - 为什么 PyCharm 将 `x.append(x[0])` 重写为 `x = [..., x[0]]`?