2013-01-24 23 views
1

我正在学习Android应用开发,需要将用户界面和网络API调用的部分分开,将来可能会有缓存。内容提供者用于抽象API请求和缓存?

我应该使用内容提供者类来包装数据获取和缓存吗? 我将如何从中受益?

或者,我应该做一个自定义类吗?所有的

回答

2

首先,你可以检查这个Google I/O video关于REST最好的做法 - 这是真正的好)))

ContentProvider会给你使用ContentObserver监测ContentProvider并自动重新读取数据到用户界面的变化的可能性。但是你需要实现很多不同的事情并编写大量的代码。

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

我认为这两种方式都是可用的,所以它取决于你,只取决于你的要求。

1

另一个想法是使用谷歌的Loader类,因为它通过循环持续,你可以实现一个加载器来运行基本的Http连接,如图所示here.记住Evos说的所有事情,这只是另一个想法/选择。

还应考虑AsyncTasks

1

我用了两个库,并结合成一个自定义类。

AsyncHttpClient用于缓存网络调用和DataManagement(一个简单的数据库)。

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