需要实现分页加载,有本地缓存,支持从网络同步数据。
明确的思路:
- 异步加载数据;
- 用观察者模式监听数据更新,然后更新到界面;
- 按需加载
应该可以做一个控件,只需要配置必要的数据,剩下的列表逻辑都是固定的,把这里固定的东西提取来了。
- 配置 Layout
- 配置数据类型和 View 的数据绑定方式
- 配置数据数据获取的方式
自动生成:
- 加载状态(加载中、加载成功、加载失败)及提示
- 下拉刷新
- 点击或自动加载更多
【配置】即完成,是否就是最理想的状态?
可以参考 dhroid 框架,大量实现了这些的工具。(但感觉不灵活了,怎么办……)
使用 Android 的 loader 加载数据库数据,数据不需要中转,可使用懒加载方式优化,适合用于量大的数据,
此时可使用 sprinkles 框架。
sprinkles 笔记:
- 需要自己实现建表的操作,以方便实现更灵活的关联表或才数据库更新等操作;
- 数据模型都应该继续 Model 类,于是可以让数据直接执行一些基础的操作(保存、删除、判断是否存在等);
- 提供查询的接口,如果不是查询全部,查询时需要传入 SQL 语句(爽吧,呵呵);
- 使用的注解,实现了声明表名、列名、自增、动态列、主键;
- 操作一般都提供了同步及异步的方式;
- 可以返回一个 CursorList ,以便可以使用懒加载的方式在列表显示数据;
- 可以通过 ModelList 实现批量操作
- 提供了基础的数据类型,如果需要更多类型,可以通过 registerType() 方法来实现
- 提供数据变化的观察接口 ContentObservers,当数据库变化时,可以监听到;
- 新手,注意 Cursor 要在什么时候关闭哦!