【问题标题】:What object passing option between Android activities is better from performance view?从性能角度来看,Android 活动之间的哪个对象传递选项更好?
【发布时间】:2013-01-06 06:46:28
【问题描述】:

我有一个在其中使用 SQLite 的应用程序。从那些使用光标的记录中显示 ListActivity 供用户选择他想要获取的对象的信息。

按下它后,Intent 以超长的对象 id 启动。在此意图的目标活动中,额外用于获取有关对象的信息。那么它的作用是打开数据库并使用对象 ID 获取所有日期。

我开始想知道这是不是一个不错的选择,我是否可以提高我的应用程序的性能?首先,我正在考虑将对象放入 parcelable 并像这样发送,但有一件棘手的事情 - 在 ListActivity 中,并非所有已下载的字段都在目标活动中显示(下载)。

所以也许最好从 ListActivity 的数据库中下载所有可用字段,然后只额外传递它?

你怎么了?什么是最好的选择,也许还有别的选择?

我忘记了我认为的两个重要信息:我使用的是普通 SQLite,因为我不需要 FTS3,并且数据库可以有数百条记录。

【问题讨论】:

    标签: android android-sqlite performance


    【解决方案1】:

    我想说在 DB 中按 id 搜索元素应该非常快,并且一旦它在活动开始时,它不应该是性能问题。同时,当活动仅获取 id 然后自行加载所有数据时,这是一种更简洁的方法。当然,您需要同时尝试两种方式,看看它是否真的能给您带来性能优势。

    【讨论】:

      【解决方案2】:

      一如既往,视情况而定。

      如果您所做的只是列出记录,然后单击它们以查看详细信息,那么正如 Nikita Beloglazov 所说,第二个选项将是最好的和更清晰的。我赞成它,因为它很常见。

      但是,如果您打算在级联中执行大量操作,我建议您不要每次打开活动时都从数据库中读取数据,而是可以传递对象。在这种情况下,如果列表有很多记录,您可以异步加载它们。另外,如果对象有很多数据(即使是包含集合的集合),您必须记住它会增加内存使用量。

      最后,问题是关于内存与 I/O 操作与您需要/拥有什么。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-09-30
        • 2014-12-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多