我正在学习Android应用程序开发,需要将UI和进行网络API调用的部分分开,将来可能会有缓存。
我是否应该使用 Content Provider 类来包装数据获取和缓存? 我将如何从中受益?
或者,我应该制作一个自定义课程吗?
答案 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
(简单数据库)用于缓存。
自定义类将检查缓存是否在数据库中可用。如果可用,它将从缓存中返回数据。如果不是,则进行网络呼叫,并将响应缓存在数据库中。