进入没有主题的活动时,eglsurface被销毁

时间:2013-03-22 15:35:02

标签: android surfaceview egl

所以基本上我有一个应用程序可以执行一些开放式渲染,但也有一些用户输入的活动来设置一些东西。

奇怪的是,但如果我输入的活动没有以下属性

机器人:主题= “@风格/ ThemeDialog”

其中ThemeDialog基本上是一个将parent属性设置为

的样式

@android:风格/ Theme.Holo.Dialog“

表面视图被破坏。 一个人如何与另一个相关?我似乎找不到合理的解释。 你能帮我吗?

2 个答案:

答案 0 :(得分:1)

默认主题使用不透明窗口。这意味着当您打开没有在清单中指定主题的Activity时,它会隐藏包含您Activity的当前SurfaceView。隐藏Activity时,系统可以自由回收曲面。当您返回原始Activity时,将重新创建曲面。

答案 1 :(得分:0)

假设我有活动A B C D和E.

A B C D - 都具有相同的主题,Theme.Holo.Dialog E - 没有指定任何主题(所以默认的,不透明的)

A - 此活动保存我在

上绘制的表面

如果我打开A,然后是B(通过A),然后是C(通过B),那么D(通过C),表面就可以了。

如果我打开A,然后是B(通过A),然后是C(通过B),然后是E(通过C),则会发生以下情况: 1.当从C切换到E时,表面被破坏 和 2.当从E回到C时,表面恢复(表面改变事件)

正如您所看到的,A远远落后于这一系列活动。那么A的表面与E没有主题的事实有什么关系呢?为什么从可能活动(C)切换到非可能活动(E)时A表面会被破坏?