簡體   English   中英

使用OpenGL處理​​Activity生命周期的正確方法是什么

[英]What's the proper way to handle the Activity lifecycle with OpenGL

我真的在這里掙扎,而且它阻礙了我。

處理OpenGL的正確方法是什么,以及一個Activity - 它啟動子活動,或者返回主屏幕。 讓它恢復到原來的位置。

我現在半工作,紋理/ VBO在需要時在onResume()重新加載。

但有時,當啟動子活動並返回,或進入主屏幕並返回時,onCreate將再次被觸發。 這弄亂了整個事情,我最終得到了黑屏。

我確定我做錯了。 有人可以解釋一個人應該如何處理這樣的活動?

你在用什么平台工作?

我問的原因是,在Eclair之前,整個區域都充滿了漏洞,導致暫停/恢復OpenGL基本上只是意外工作。 然而,這些確實似乎已被Eclair修復,我們的應用似乎是相當可靠地暫停和恢復。

應該做的是向SurfaceHolder注冊一個回調,以便在曲面出現和消失時得到通知。 在surfaceDestroyed()方法中,您完全關閉EGL,然后在您的surfaceCreated()方法中重新初始化它。 您不應該使用Activity的onCreate()/ onResume()方法執行任何操作,因為曲面可能不會同時出現和消失。

也就是說,我們的應用程序是為Cupcake設計的,當時事情非常原始。 我認為現在有一些實用工具可以為你做所有繁重的工作,所以如果你使用其中一件可能會有不同的工作; 如果你不是,你可能想要研究它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM