java - 关闭预览模式时,动态壁纸引擎不会调用 onDestroy

标签 java android opengl-es live-wallpaper

我正在开发 opengl ES 2.0 动态壁纸。通常,当一个引擎被销毁时,它的方法 onSurfaceDestroyedonDestroy 被调用。我注意到当我点击“设置壁纸”按钮时,onSurfaceDestroyed 和 onDestroy 没有被调用。

enter image description here

此方法可用于破坏 opengl ES 上下文。每次墙纸在正常模式和预览模式之间切换时,墙纸都会因资源泄漏而崩溃。有人遇到同样的问题吗?

最佳答案

我很确定我已经为遇到此问题的其他人解决了这个问题。

似乎当我已经运行了墙纸,然后在其预览中单击“设置墙纸”时,不会调用 onDestroy() 方法。但是,可以将取消位图和调用 stopSelf() 放在 onSurfaceDestroyed 方法中,这似乎适用于打开的 WallpaperService Engine 的每个实例。这可能不是正确的做事方式,但目前看来工作正常。

关于java - 关闭预览模式时,动态壁纸引擎不会调用 onDestroy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32049388/

相关文章:

ios - 从 CoreGraphics 升级

linux - OpenGL ES 3.0 GL_POINTS 不渲染任何东西

java - Mockito:如果传递给 mock 的参数被修改了怎么办?

java - Akka : How to assign an Actor an alias path

java - 图像背景,覆盖油漆?

android - 两次打开相同的 Activity

java - 如何从 eclipse 项目中获取文件的内容

android - Multidex Android 库模块

java - 安卓/Java : accessing the same SQLite DB object from multiple activities

c++ - Open gl es - 如何提高性能、渲染到纹理、混合