【发布时间】:2011-03-23 02:35:00
【问题描述】:
使用 onClick 性能会更好吗?如果我使用 onClick,我不必 必须设置 android:id(也避免使用 new View.OnClickListener),这会提高性能吗?全部?还是在幕后发生 findViewById 的效果相同?
此页面提供了两种方法作为选项,但几乎没有任何好处的指导。
http://developer.android.com/reference/android/widget/Button.html
这是一篇博客文章,他们认为 onClick 对于 1.6 后的应用程序来说“更简单”和“改进”;
http://android-developers.blogspot.com/2009/10/ui-framework-changes-in-android-16.html
这项新功能减少了 您必须使用的 Java 和 XML 数量 写,留给你更多的时间 专注于您的应用程序。
【问题讨论】:
-
我不知道是否有任何性能影响(我怀疑有),但我愿意打赌应用 OnClickListener 以保持活动简单是一个更好的主意维护并保持严格的关注点分离。
-
在你最后一次编辑之后:它可能更容易,但我不认为我的 onClick 处理程序是样板代码。它总是以个人品味而告终......
-
我仍然坚持理解 findviewbyid 对性能的影响,我看到有些人说它们可能很昂贵等等,所以我的想法是减少 onclick 调用可能会有所帮助。加上减少 id 的设置(除非它们只是在您没有专门设置它们时在幕后完成)可能有助于在您确实需要时加速该功能。我已经接管了一些似乎 android:id 设置过度的代码,这让我相信从长远来看可能会超过 findviewbyid 的负担......
-
我认为,如果考虑到性能这一点很重要,至少会在 developer.android.com 上的 Designing for Performance 最佳实践文章中提到,但它不存在,所以我想没什么好担心的。此外,并非一切都是性能。
标签: android performance android-layout