移動我的加載/創建代碼到一個異步任務(見下文)後 - 我仍然有我有我原來的啓動畫面初始問題。
那些在於:
1)在啓動中的onCreate異步任務,一切都被加載,但是當在onStart()被調用,這使得整個過程那種毫無意義的,只能顯示在我的對話框出現是一個長時間的停頓,一個空白的屏幕,然後在所有的東西都加載之後,'加載'對話框在瞬間閃爍,然後消失。
2)我無法將對象加載/創建等移動到onStart,因爲a)即使應用程序在發送到我不希望發生的背景後恢復,它也會再次運行,並且b)當調用恢復onCreate()中的savedInstanceState時,我會得到一個nullPointerException,因爲我正在還原尚未創建的對象的屬性。
如果有人能建議如何解決這些問題並創建一個簡單的飛濺屏幕,我們將非常感激。謝謝!
背景
我的應用程序只使用一個活動,我想,如果能夠保持這種方式。
我一直在努力爭取了一個多星期,所以真的希望有人能幫助我。
所有我想要做的就是使用閃屏用,而我的資源負荷(和對象創建等)在屏幕上顯示一個簡單的「加載」消息,有幾個要點:
條件
1)濺射屏幕應該不有它自己的活動 - 一切都需要包含在一個單一的活動
2)濺射屏幕應該不使用XML佈局(我創建了一個使用View來顯示加載PNG的Splashscreen類)
3)我的應用程序是openGL ES 2.0,所以紋理需要加載到OpenGL線程上(創建對象等如果需要的話,不要使用GL調用可以繼續使用另一個線程)。
我已經嘗試到目前爲止
我做什麼,到目前爲止是創建一個對話框,並在我在onStart顯示它()方法:
Dialog.show();
然後讓一切負荷我擺脫它與之前onSurfaceCreated方法:
Dialog.dismiss();
但是我需要所以現在我c要改變這種對varioius原因在我的onCreate()方法中調用我的對象,並讓紋理加載到我的GL渲染器的onSurfaceCreated方法中。
然而,這意味着,後因的onCreate對話不顯示,直到,我仍然獲得了延遲(黑屏),而一切之前創建的啓動畫面顯示,這則停留在直到紋理加載完成。還有其他問題也可以等待另一天!
所以我的方法顯然是非常錯誤的。我閱讀了每一個教程,以及我可以在SO和Gamedev.SE上找到的每個與屏幕相關的問題,但我仍然無法找到解釋(對我來說很合理)以及如何實現這一點。
我希望這裏有人能解釋。
你試過使用這些碎片嗎? – amalBit