内容提供程序用于抽象API请求和缓存?

时间:2013-01-24 11:43:09

标签: android

我正在学习Android应用程序开发,需要将UI和进行网络API调用的部分分开,将来可能会有缓存。

我是否应该使用 Content Provider 类来包装数据获取和缓存? 我将如何从中受益?

或者,我应该制作一个自定义课程吗?

3 个答案:

答案 0 :(得分:2)

首先,您可以查看Google I/O video有关REST最佳做法的信息 - 这真的很棒)))

ContentProvider可让您使用ContentObserver来监控ContentProvider中的更改并自动将数据重新提交到UI。但是你需要实现很多不同的东西并编写大量的代码。

第二种方法是使用SQLiteOpenHelper +通过LocalBroadcast手动通知您有关DB(您的缓存)更改的UI。

我认为这两种方式都是可用的,所以这取决于您,并且仅取决于您的要求。

答案 1 :(得分:1)

另一个想法是使用Google的Loader Class,因为它会持续旋转,你可以实现一个加载器来运行基本的Http Connectivity here.请记住Evos所说的一切都是真的,这只是另一个想法/替代方案。

同时查看AsyncTasks

答案 2 :(得分:1)

我使用了两个库并将它组合成一个自定义类。

AsyncHttpClient用于进行网络调用,DataManagement(简单数据库)用于缓存。

自定义类将检查缓存是否在数据库中可用。如果可用,它将从缓存中返回数据。如果不是,则进行网络呼叫,并将响应缓存在数据库中。