2015-07-13 77 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正在調用.. –