我正在学习Android应用开发,需要将用户界面和网络API调用的部分分开,将来可能会有缓存。内容提供者用于抽象API请求和缓存?
我应该使用内容提供者类来包装数据获取和缓存吗? 我将如何从中受益?
或者,我应该做一个自定义类吗?所有的
我正在学习Android应用开发,需要将用户界面和网络API调用的部分分开,将来可能会有缓存。内容提供者用于抽象API请求和缓存?
我应该使用内容提供者类来包装数据获取和缓存吗? 我将如何从中受益?
或者,我应该做一个自定义类吗?所有的
首先,你可以检查这个Google I/O video关于REST最好的做法 - 这是真正的好)))
ContentProvider
会给你使用ContentObserver
监测ContentProvider
并自动重新读取数据到用户界面的变化的可能性。但是你需要实现很多不同的事情并编写大量的代码。
第二种方法是使用SQLiteOpenHelper
+例如通过LocalBroadcast
手动通知您关于DB(缓存)更改的UI。
我认为这两种方式都是可用的,所以它取决于你,只取决于你的要求。
另一个想法是使用谷歌的Loader类,因为它通过循环持续,你可以实现一个加载器来运行基本的Http连接,如图所示here.记住Evos说的所有事情,这只是另一个想法/选择。
还应考虑AsyncTasks
我用了两个库,并结合成一个自定义类。
AsyncHttpClient
用于缓存网络调用和DataManagement
(一个简单的数据库)。
自定义类将检查缓存在数据库中是否可用。如果可用,它将从缓存中返回数据。如果不是,则进行网络调用并将响应缓存到数据库中。