我正在编写社交网络安卓应用程序。我在Microsoft Azure上创建了一个带有数据库的.Net webservice,我计划调用该Web服务从云中获取数据并将其显示给用户。与Facebook类似。
现在,我有两种方法,我不确定要实施哪种方法。方法如下:
在决定正确的技术时,我需要你的建议。 2号看起来不错,但是如果有什么我不知道的话,我会毫无理由地写下所有额外的代码。
请帮帮我。如果有更好的方法,请告诉我。
答案 0 :(得分:1)
这实际上取决于数据类型,数据需要什么样的延迟以及数据量。此外,项目的规模和实施的好处将增加复杂性。有关更精确的答案,请提供更多信息。
在这种情况下,本地缓存可能是一个非常好的主意。这是相当普遍的做法,可以使用多种机制。根据从Web服务检索的数据格式,您可以存储在
中数据库,需要处理(搜索,查询等)数据或有大量数据时。
文件,如果您使用格式化数据(如xml或json),有时会很有用,因为您可以维护结构。您可以使用native android caching来协助管理存储空间。
首选项,当数据是简单类型(和字符串)时,并没有太多。
本地缓存将减少带宽消耗(最终将节省用户总是流行的资金),并且如果正确实现内存和处理消耗。可能最重要的(取决于数据)它可以允许在用户没有连接时有效地使用应用程序。
顺便说一下,30个活动听起来很多,你应该真正考虑通过跨活动共享功能来减少这些活动,这应该可以改善导航,代码批量和内存占用。
来自评论的更新
根据有关您项目的有限信息,我建议您将数据库用作数据存储(如果有),因为您不希望在文件中缓存完整的SOAP消息,并且数量超过40的记录可能会优先存储难以管理。
但是,正如我之前提到的,你需要考虑复杂性。使用数据库时,您必须创建一个与SOAP对象的反序列化分离的构造方法(可能是某种ORM),因为从技术上讲,您将使用2个独立的持久化数据格式。
我无法获得明确的答案,因为信息仍然非常有限,但您需要评估为项目添加此类功能的成本以及您将获得的好处。
在考虑这种缓存时,我还有其他一些值得一提的东西。