我有一个常规的Android应用程序,其中包含一些简单的活动和标准导航。现在,我正在使用MapActivity
(GLSurfaceView
)添加复杂活动(MapView
)。 MapView
需要几秒钟来初始化(GL上下文,着色器,纹理,缓冲区等)并使用相当多的内存。
我仍然希望保留默认导航(从当前开始任何活动的能力,包括新的MapActivity
,并且能够在返回时返回)。该应用程序的设计方式使用户可能经常在地图和其他活动之间来回切换。
我想要的只是保留MapView
(至少是GL上下文),因此每次按下后退按钮时都不会销毁它,并且当我启动MapActivity
的新实例时不会重新创建它它
如何实现这一目标?
我试图制作MapActivity
singletask / singleinstance。这样它就会破坏背压。此外,它也会变成单独的任务,所以如果我可以无缝地导航回到历史上之前的MapActivity
状态,我会担心(尽管还没有检查过这个状态)。
我还试图在MapView
的不同实例之间共享整个MapActivity
实例,但这似乎也不起作用。
MapActivity
不是应用的入口点。
我使用OpenGL ES 2.0上下文。