2013-01-24 36 views
4

隨着我的應用程序(遊戲)越來越大,我開始遇到問題。在哪裏創建位圖等

我有一個'開始遊戲'按鈕的菜單活動 - 當用戶按下此按鈕時,它啓動主要遊戲活動 - 現在在此活動中,我在構造函數中創建位圖等,但有這麼多現在當活動開始時,在遊戲實際開始之前會有一些延遲 - 大約2秒。

我明顯在做錯事 - 請有人建議如何解決這個問題,這樣延遲(顯然,必須發生) - 不會被用戶注意到。

+0

帶進度條或微調器的加載屏幕如何? –

+0

這似乎是最簡單的方法 - 我可以使用這種方法 - 謝謝! – Zippy

回答

3

立即加載你需要的。加載其餘的後臺線程(可能是一個AsyncTask)。如果您在加載之前需要一個,可以根據需要暫停或放置加載屏幕。

+0

謝謝大家的意見/答案 - 我正在使用surfaceView併爲此使用一個單獨的線程 - 您是否建議我需要創建另一個用於加載資源的線程?非常感謝! – Zippy

1

您可以開始在菜單活動的背景中加載位圖,或者甚至在使用background thread or AsyncTask創建應用程序時開始加載位圖。您仍然需要某種加載屏幕,以防止用戶在完成加載所有位圖之前導航到主遊戲活動。

+0

謝謝 - 我該怎麼做?我的意思是,我將如何在一項活動中加載內容並仍然可以在另一項活動中使用它 - 謝謝! – Zippy

+0

您可以從單例或從自定義應用程序類中的字段公開的類引用它。看到這個問題的每個選項的參數:http://stackoverflow.com/questions/3826905/singletons-vs-application-context-in-android – kabuko

0

您也可以啓動一個IntentService來加載位圖。加載位圖時,IntentService可以使用LocalBroadcastManager發送廣播。然後,每個關心結果的組件都可以使用LocalBroadcastManager註冊BroadcastReceiver。