在使用GLSURFACEVIEW时设置活动时,如何避免暂停Android Live壁纸
-
11-10-2019 - |
题
我正在使用著名的glsurfaceview包装器(http://www.rbgrn.net/content/354-glsurfaceview-apadapted-3d-live-wallpapers)为Android编写3D实时壁纸
当我打开首选项屏幕以更改壁纸设置时,设置将在我的壁纸预览中显示为透明。这很好,因为它使我可以预览设置更改。除了一个问题外,这也很棒:只要设置在其顶部,实时墙纸就会暂停!
如何避免墙纸暂停?
解决方案
我想出了一个解决方法,这取决于您的墙纸的功能。
在我的设置活动中,每当用户进行更改(例如移动滑块,检查复选框)时,我都会广播 Intent
使用相关设置信息。
在现场壁纸中 onCreate
方法,我动态注册了 BroadcastReceiver
接收这些设置事件。我解开了这个接收器 onDestroy
.
收到设置广播时,我让墙纸绘制一个带有新设置的框架。由于设置活动是透明的,因此这立即使用户了解所选设置的壁纸外观。
同样,使用这种方法,您可以安排墙纸在更改设置后或适合您实施后的几秒钟动画。
其他提示
我发现这也很烦人。我简单地打电话给我完全避免了问题 finish()
在我的设置活动中,只要进行更改。这允许为用户提供即时完整的壁纸预览。只需单击即可返回设置以进行另一个更改,这使用户体验相当不错。
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
String key) {
finish();
}
我在壁纸系列中使用了它。 这里 是一个例子:
不隶属于 StackOverflow