我有一个关于android基本概念的问题。
我有一个Activity通过Intent将两个Integers数组传递给另一个Activity。一个数组是一个ID(整数)数组,另一个是Names(String)数组。我在SQLite数据库中也掌握了所有这些信息。
所以我的问题是: 更好的是,使用intent传递所有信息或仅传递ID的数组,并在调用第二个活动的OnCreate时直接从数据库中获取Name。?
感谢。
答案 0 :(得分:1)
通常,最好从DB中检索大量数据,而不是将其传递给intent,因为parceling into intent需要内存。因此,如果要发送包含位图的复杂对象数组,则可以抛出OutOfMemoryException
,如果直接从DB或其他持久存储中检索这些对象,则不会抛出{1}}。 / p>
但在你的情况下,似乎不会注意到差异,因为你只传递字符串。因此,您可以通过意图传递数据并节省打开/关闭数据库的资源。
这不是假设,所以任何评论都会受到赞赏。
答案 1 :(得分:1)
最好的方法是通过意图发送尽可能少的信息。这将使您的代码在适当的位置保存/恢复数据,并减少活动之间的转换时间。
既然你已经掌握了存储在数据库中的信息,并且可能已经有了存储和检索信息的方法,那么为什么要为自己编写代码将所有信息捆绑起来以实现意图?只需发送标识信息,让框架的其余部分完成工作。