2014-02-20 123 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