2015-07-13 60 views
0

在Android中,当可见性变化发生时如何通知壁纸服务? 我已经通过AOSP代码,但我无法弄清楚。壁纸可见性变化

我想应该是WindowManagerService,有人可以澄清吗?

感谢

回答

0

WallpaperService.Engine.onVisibilityChanged(boolean)收到这样的信息:

调用,通知你的壁纸成为可见还是隐藏。 墙纸只有在可见的情况下才使用CPU,这一点非常重要

通过从Android系统发送到持有用于显示动态壁纸的表面的活动的消息间接调用此方法。在5.1.0 r1版本,它具有此消息得到由一个内部类的WallpaperServiceIWallpaperEngineWrapper实施com.android.internal.os.HandlerCaller.Callback截获的

private static final int MSG_VISIBILITY_CHANGED = 10010; 

消息代码。

只需将Thread.dumpStack();添加到您的实施并看看自己。

+0

是的,那是真的,但我想知道谁通知wallpaperservice知名度有变化! –

+0

@TanmayVarun我明白了。只是看看堆栈。如果你正在寻找消息的来源,它可能会变得更难看。 – tynn

+0

是的,不能确切地说,会检查dispatchawindwindvisibility正在调用.. –