我有12个微调器的工作活动,这些微调器链接到超过20,000条记录的单个数据库表。每个微调器都绑定到不同的查询以使选择动态(基于先前的选择)。代码有效,但由于数据库中查询的数量和表的大小,我的性能很差。初始布局需要20多秒才能加载。这是因为第一个微调器在布局期间被设置为初始选择,这导致其他11个微调器也被填充。使用微调器时性能也会受到影响。如果我要更改第一个选择,所有其他微调器都需要大约10秒才能更新。
我应该从哪里开始寻找更好的表现?数据库表?查询?或者我应该避免使用12个微调器?
答案 0 :(得分:1)
听起来你并没有拖延UI线程,所以这很好。 您可以创建索引来加速数据库,但是通过分解查询而不是一次完成所有操作,您可能会获得最大的性能提升。因此,当Activity启动时,第一个Spinner将是唯一启用的控件。进行选择将触发第二个Spinner的查询并启用该查询,依此类推。
在这个(1小时)视频中有很多有用的性能: http://www.google.com/events/io/2010/sessions/writing-zippy-android-apps.html
答案 1 :(得分:0)
有了这么多选项,您应该考虑选择下钻列表。这将允许您拆分查询(每个活动一个),并且还允许当前列表占用所有屏幕。通过这种方式,您还可以为用户提供一种过滤当前列表的方法,如果您有很多选项,这可能是必须的。
此外: