我正在学习android app dev,需要将UI和进行网络API调用的部分分开,将来可能会有缓存。
我应该使用Content Provider类来包装数据获取和缓存吗?我将如何从中受益?
或者,我应该只创建一个自定义类吗?
我正在学习android app dev,需要将UI和进行网络API调用的部分分开,将来可能会有缓存。
我应该使用Content Provider类来包装数据获取和缓存吗?我将如何从中受益?
或者,我应该只创建一个自定义类吗?
首先,您可以查看有关 REST 最佳实践的Google I/O 视频- 非常棒)))
ContentProvider
将使您有可能用于ContentObserver
监视更改ContentProvider
并自动将数据重新获取到 UI。但是你需要实现很多不同的东西并编写大量代码。
第二种方法是使用SQLiteOpenHelper
+ 手动通知您有关 DB(您的缓存)更改的 UI LocalBroadcast
,例如。
我认为这两种方式都是可用的,所以这取决于你,只取决于你的要求。
我使用了两个库并将其组合成一个自定义类。
AsyncHttpClient
用于进行网络调用和(一个简单的DataManagement
数据库)用于缓存。
自定义类将检查数据库中的缓存是否可用。如果可用,它将从缓存中返回数据。如果不是,则进行网络调用并将响应缓存在数据库中。
另一个想法是使用 Google 的 Loader 类,因为它通过旋转持续存在,您可以实现一个加载器来运行基本的 Http 连接,如此处所示。请记住,Evos 所说的一切都是真的,这只是另一个想法/替代方案。
还要查看AsyncTasks