2014-02-20 120 views
0

这个问题一直在困扰着我一阵子。快速创建视图的方法

这个想法是我想用一种方式来快速绘制/创建一个视图。 我读到XML布局比动态布局有更多的优点。

我也读过关于缓存。显然,我们不能/不应该缓存整个UI元素。如果我们保存它的状态/值并重新创建它,是不是需要从头创建它的同一时间?有没有一种以更快的速度绘制视图的重要方法?

我的目标是什么?

说如果我在android应用程序中有不同的活动,我第二次访问一个活动时,我希望它能更快地“渲染”以优化性能和可用性。有没有办法,例如缓存或其他方式?或者我坚持从XML布局或编程重新创建每个活动?

预先感谢任何想法..

+0

你究竟想要做什么? – pskink

回答

1

我第二次参观活动,我希望它“使”更快,以优化性能和可用性

那么,它会因为您的资源已经加载到流程中,因此可以在一定程度上做到这一点。

您还可以将活动的现有实例带到前台,如果没有当前正在运行的实例,则通过类似FLAG_ACTIVITY_REORDER_TO_FRONT的事件创建一个新的实例。但是,这更多的是控制导航的方式,而不是专门针对性能的方式。

我们也欢迎您最大限度地减少活动次数,并采用更多的“胖活动”架构,大量利用片段,您可以在其中更多地缓存实际视图。

如果您现有的代码存在性能问题,请使用Traceview等工具来确定您的时间花费在哪里,而不是仅仅猜测。

+0

这是一个很好的答案。如果我传递对象的实例并将它们保存在不同的类中,并且当我回到特定的活动时,我有没有想法,我从之前保存的布局实例重置内容视图,是否比重新创建要快得多它? @CommonsWare – Odin

+0

@Chris:我不知道“对象”是什么。担心存在的性能问题,然后使用工具来确定性能问题的位置。随机猜测潜在的问题,然后随机猜测潜在的解决方案,浪费你的时间。 – CommonsWare

+0

这些对象是例如Button,TextView,LinearLayout等。 我知道这是迄今为止还没有存在的问题;但我只是想,如果有某种方式可以预先获取视图/布局或从缓存中加载@CommonsWare – Odin