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

Live wallpaper engine does not call onDestroy when switch off preview mode

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

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

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

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