Android 在活动之间传递数组或从数据库获取数据

Android 在活动之间传递数组或从数据库获取数据,android,database,arrays,android-intent,Android,Database,Arrays,Android Intent,我有一个关于android基本概念的问题 我有一个活动,它通过一个Intent将两个整数数组传递给另一个活动。一个数组是ID数组(整数),另一个是名称数组(字符串)。我在SQLite数据库中也有所有这些信息 所以我的问题是: 更好的做法是,使用intent传递所有信息,或者只传递ID的数组,并在第二个活动的OnCreate为invoke?时直接从数据库获取名称 谢谢。一般来说,从数据库中检索大量数据比将其传递给intent更可取,因为将数据打包到intent需要内存。因此,例如,如果要发送包含位

我有一个关于android基本概念的问题

我有一个活动,它通过一个Intent将两个整数数组传递给另一个活动。一个数组是ID数组(整数),另一个是名称数组(字符串)。我在SQLite数据库中也有所有这些信息

所以我的问题是: 更好的做法是,使用intent传递所有信息,或者只传递ID的数组,并在第二个活动的OnCreate为invoke?时直接从数据库获取名称


谢谢。

一般来说,从数据库中检索大量数据比将其传递给intent更可取,因为将数据打包到intent需要内存。因此,例如,如果要发送包含位图的复杂对象数组,可以抛出
OutOfMemoryException
,如果直接从DB或其他持久性存储检索这些对象,则不会抛出该异常

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


然而,这不是假设,因此任何评论都将不胜感激。

最好的方法是通过意向发送尽可能少的信息。这将使用于存储/恢复数据的代码保留在适当的位置,并减少活动之间的转换时间


既然您已经将这些信息存储在数据库中,并且可能已经有了存储和检索这些信息的方法,那么为什么还要为自己编写更多的代码来将这些信息捆绑起来呢?只需发送识别信息,让框架的其余部分来完成工作。

对于一些小的东西,可以通过意向传递。非常感谢Josh。我将仅通过Intent发送id,并直接在数据库中查找其余信息。