从性能视图来看,Android活动之间的哪个对象传递选项更好?

时间:2013-01-05 21:59:28

标签: android android-sqlite performance

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

按下它后,Intent以超长对象id启动。在此intent的目标活动中,extra用于获取有关对象的信息。它的作用是什么,它打开数据库并使用对象id得到所有日期。

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

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

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

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

2 个答案:

答案 0 :(得分:1)

我会说在数据库中按ID搜索元素应该非常快,因为你曾经在活动开始时它应该不是性能问题。同时,当活动只获取id然后自己加载所有数据时,它会更加清晰。当然,你需要尝试两种方式,看看它是否真的给你带来性能上的好处。

答案 1 :(得分:1)

一如既往,这取决于。

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

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

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