我有12个微调器的工作活动,这些微调器链接到一个超过20,000条记录的数据库表。每个微调器都绑定到一个不同的查询,以使选择成为动态的(基于先前的选择)。代码可以工作,但由于数据库中查询的数量和表的大小,我的性能很糟糕。初始布局需要20+秒来加载。这是因为在布局过程中将第一个微调器设置为初始选择,这会导致同时填充其他11个微调器。使用微调器时,性能也会受到影响。如果我要更改第一个选择,更新所有其他微调器大约需要10秒。
我应该从哪里开始寻找更好的性能?数据库表?问题是什么?或者我应该避免使用12个微调器?
发布于 2011-03-23 04:00:17
有了这么多选项,您应该考虑使用下钻列表。这将允许您拆分查询(每个活动一个),并允许当前列表占据整个屏幕。通过这种方式,您还可以为用户提供一种过滤当前列表的方法,如果其中有很多选项,这可能是必须的。
另外:
发布于 2011-03-23 03:47:27
听起来您没有停止UI线程,所以这很好。您可以创建索引来提高数据库的速度,但通过将查询拆分而不是一次执行所有查询,您可能会获得最大的性能提升。因此,当活动启动时,第一个微调器将是唯一启用的控件。进行选择将触发对第二个微调器的查询,并启用该微调器,依此类推。
在这个(1小时)的视频中有很多有用的性能方面的东西:http://www.google.com/events/io/2010/sessions/writing-zippy-android-apps.html
https://stackoverflow.com/questions/5393451
复制相似问题