2015-06-16 82 views
0

我有一個應用程序,需要相當大量的初始化(CPU明智,而不是內存)。當用戶點擊後退按鈕時,我寧願保留硬計算和分配的結構,因此每次點擊圖標時都不會有3-4秒的延遲。保留一些變量初始化銷燬()

這樣做的正確方法是什麼?應用程序的部分應該是服務?

+0

爲什麼不在您的應用程序初始化時顯示啓動畫面?如果用戶在此期間後退,則中止初始化。您可以使用setRetainInstance(true)在非UI片段中進行初始化,以便在用戶更改方向時不會停止。 –

+0

是的,我會使用啓動畫面,但我的問題與每次將應用程序放入背景時重新執行相同的工作有關。 – EntangledLoops

+1

是的緩存在某處,不知道你在做什麼,但後臺服務或單身/靜態緩存。 – Blundell

回答

1

解耦您的用戶界面和核心邏輯。既然你希望你的應用程序在後臺運行,實現一個服務組件,並維護你的本地庫初始化狀態和其他你想用於UI的東西。在這種情況下,服務和狀態機方法將爲您帶來更好的收益。

+0

好的,所以這是應用程序服務部分的正確使用:在後臺維護一些狀態。我的UI和核心邏輯已經解耦,期待這樣的事情,謝謝你的回答。 – EntangledLoops