0

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

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

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

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

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

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

4

2 回答 2

1

一如既往,这取决于。

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

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

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

于 2013-01-05T22:46:28.237 回答
1

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

于 2013-01-05T22:15:58.883 回答