【问题标题】:Passing arrays between activities or take data from database在活动之间传递数组或从数据库中获取数据
【发布时间】:2011-09-26 11:42:07
【问题描述】:

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

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

所以我的问题是: 当调用第二个活动的 OnCreate 时,使用 Intent 传递所有信息或仅传递 ID 的数组并直接从数据库中获取名称,有什么更好的方法?。

谢谢。

【问题讨论】:

  • 对于带有意图的小东西应该没问题。

标签: android database arrays android-intent


【解决方案1】:

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

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

【讨论】:

  • 非常感谢乔希。我将仅通过 Intent 发送 ID,我将直接在数据库中查找其余信息。
【解决方案2】:

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

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

然而,这不是假设,所以任何 cmets 都会受到赞赏。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多