2012-04-28 39 views
0

我們使用不同的活動來瀏覽我們的應用程序。其中一個非常複雜,包含很多嵌套的視圖/圖像等,所以當我在之前的活動中使用startActivity(intent1)時,存在短暫的延遲,並且感覺/看起來很遲鈍。 提前知道創建內容視圖所需的所有信息。在開始之前創建/渲染活動

所以我的問題是:是否有一個聰明的方式預渲染/預加載活動或其內容視圖?

正如我想的那樣,只有持有有關下一個活動的信息,但沒有活動本身的實例,所以我假設在我調用startMethod之前無法告訴打算創建活動。

我的一個想法是在開始活動之前創建靜態視圖,並將該視圖設置爲onCreate()方法中的contentView。但對我來說這似乎是一個糟糕的伎倆。

在此先感謝!

+1

使用[Traceview](http://developer.android.com/guide/developing/debugging/debugging-tracing.html)查找您的呆滯位置,然後修復它。 – CommonsWare 2012-04-28 17:52:52

+0

我已經使用traceview並將其優化到1/5的時間,但仍然太慢,沒有太大的改進空間。但感謝您的意見! – eyeballz 2012-04-28 18:10:51

回答

1

最好的解決方案不是開始一個全新的活動,而是使用ViewPagerViewFlipper。切換視圖應該幾乎是瞬間的,你也有機會輕鬆應用動畫。

如果這是不可能的,你可以開始一個新的活動,但把一個ViewSwitcher在那裏。第一個視圖將是一個進度條。第二個視圖被誇大,並在後臺線程中添加到切換器中。

+0

是的,我會用我的下一個應用程序來做到這一點,但問題是,如果我像這樣使用它,它會搞砸導航和應用程序的概念。例如,我不得不重寫後退按鈕,因爲這是瀏覽應用程序的一種方式。 – eyeballz 2012-04-28 18:15:19

+0

現在我不知道您的導航概念,但我的猜測是,從用戶角度來看,唯一的區別是可能相對比較簡單的後退關鍵行爲。如果第二個視圖可見,則切換到第一個視圖,否則調用finish()。 – Renard 2012-04-28 18:27:37

+0

,我猜翻頁/頁面動畫會與其他人不同。並且很難模仿這個,因爲每個Android版本/品牌在活動之間都有自己的動畫頁面。 – eyeballz 2012-04-28 18:40:11