2011-09-26 80 views
0

我有一个关于android基本概念的问题。在活动之间传递数组或从数据库获取数据

我有经由一个Intent通过整数的两个阵列到另一个活动的活动。一个数组是一个ID(整数)数组,另一个是名称(字符串)数组。我在SQLite数据库中也有所有这些信息。

所以我的问题是: 什么是更好的方式,使用intent传递所有信息或只传递ID的数组,并在第二个活动的OnCreate被调用时直接从数据库获取Names?

谢谢。

+2

对于那些传递意图的小应该没问题。 – blessenm

回答

1

最好的办法是通过意图尽可能发送尽可能少的信息。这将使您的代码在适当的位置保存/恢复数据,并缩短活动之间的转换时间。

既然你已经有了存储在数据库中的信息,并已经大概有存储和检索信息的方法,为什么自己添加更多的工作编写代码捆绑一切,为的意图是什么?只需发送识别信息,让其余的框架完成工作。

+0

非常感谢乔希。我只会通过Intent发送ID,然后我会直接在数据库中查找其余信息。 – gutiory

1

一般来说,这是优选的,从DB中检索大量的数据比它传递给意图因为parceling到意图需要存储器。因此,如果要发送包含位图的复杂对象数组,则可以引发OutOfMemoryException,如果您直接从数据库或其他持久性存储中检索这些对象,则不会抛出该对象。

但在你的情况看来,差异不会被注意到,因为你只传递字符串。因此,您可以通过意向传递数据并节省资源来打开/关闭数据库。

这不是然而,假设,因此任何意见,将不胜感激。