2012-10-17 51 views
1

我需要一个建议。我正在创建一个具有多个List活动的Android应用程序。从列表中选择项目,生成另一个列表,并从第二个列表中选择项目,显示图像。所有数据(用于列表以及图像)都来自Web服务器。我已经在PHP中创建服务将数据提供给Android应用程序。我想尽可能地优化应用程序。我的问题是,什么更好,一次从服务器获取所有数据,或者当用户选择一个项目时只提取相关数据。针对android应用程序结构的推荐/建议

第一种方法(我能想到的)的加点是用户将不得不等待第一次。数据加载后,应用程序将运行得更快,因为不会有任何进一步的服务器调用。消极点(我能想到)是应用程序将消耗更多的内存。

为了使应用更加高效和用户友好,我应该遵循哪种方法?

回答

1

您应该观看Reto Meier的Google IO 2012对话 - https://www.youtube.com/watch?v=PwC1OlJo5VM

其中他谈到了移动无线电,并解释了为什么它更好地延长电池续航时间以便一次获取所有数据。这是一个伟大的谈话,值得。

除非在列表视图中有疯狂的数据量,否则内存不应该成为问题。

1

根据我的建议,不要采取第一种方法(一次提取数据),因为假设您现在有小数据,但如果您想到未来,则会给您带来问题。因此,不是一次获取所有数据,而是在必要时进行。您也可以使用延迟加载的概念,以便您获得良好的结果。懒惰地提取数据将是很好的做法。

对于延迟加载这里是一些资源: -

Android: Implementing progressbar and "loading..." for Endless List like Android Market

Lazy load of images in ListView

Lazy Load images on Listview in android(Beginner Level)?

因此,我建议你使用惰性加载概念,您的要求。希望这可以帮助。