我正在开发一个包含3个活动的Android应用程序。 它们表现为三个不同的标签,因此在正常使用中,用户可能会快速地在一个标签之间切换。 为此,我总是使用以下代码:
Intent intent= new Intent(currentclass.this, nextclass.class);
startActivity(intent);
但是,至少有两个活动可能会显示在ScrollView视图中查看的大量按钮列表。 “巨大的”我指的是500个元素左右。因此,正如您可以想象的那样,从一个Activity切换到另一个Activity需要很长时间。每次创建一个新的Activity而不是恢复旧的Activity主要是问题所在。 实际上,从一些Activity切换到之前访问的Activity(这是默认的backButton功能)比通过上面的代码执行它稍微快一些。我想知道它究竟是什么以及如何从中受益(使用Intent对象上的一些标志)。
即使backButton不能满足我正在寻找的性能,我也希望听到任何可以改善我的切换实现的建议。
谢谢!
答案 0 :(得分:1)
您说您正在使用滚动视图。
简单的答案是使用列表。它具有专门用于处理大量项目的性能优化。
答案 1 :(得分:0)
您可以选择一些方法来提高效果。
SMR提到的视图持有者模式是一个很好的开始。还要确保您正在转换视图而不是让android管理500个实际视图,因为这会使您的UI需要很长时间来构建。
您还可以使用Loader在后台加载数据,以便初始UI出现,并在加载程序填充数据时更新列表。您的列表视图是否真的在屏幕上显示500个按钮,或者只有500个项目,在这种情况下,您不必等待所有这些按钮加载以填满屏幕?
您可以切换到使用Fragments而不是活动,这样每次切换标签时都不会重新创建活动。 Android倾向于更加积极地保留Fragments,因为它知道你可以在一个活动中更快地切换到它们。
您还可以确保在活动退出时不会刷新数据,而是将其附加到application,但实际上并不建议这样做,并且不会停止视图流失。