1

我正在学习android app dev,需要将UI和进行网络API调用的部分分开,将来可能会有缓存。

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

或者,我应该只创建一个自定义类吗?

4

3 回答 3

2

首先,您可以查看有关 REST 最佳实践的Google I/O 视频- 非常棒)))

ContentProvider将使您有可能用于ContentObserver监视更改ContentProvider并自动将数据重新获取到 UI。但是你需要实现很多不同的东西并编写大量代码。

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

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

于 2013-01-24T11:55:02.840 回答
1

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

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

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

于 2013-01-24T15:16:58.153 回答
1

另一个想法是使用 Google 的 Loader 类,因为它通过旋转持续存在,您可以实现一个加载器来运行基本的 Http 连接,如此处所示请记住,Evos 所说的一切都是真的,这只是另一个想法/替代方案。

还要查看AsyncTasks

于 2013-01-24T12:01:17.607 回答