2012-04-26 31 views
2

我有一個父類是SurfaceView的自定義類。我有類正常工作,從自己的線程畫到屏幕上。但是我想了解問題標題中的方法應該如何正確處理。如何正確使用onVisibilityChanged(),onWindowVisibilityChanged(),onAttached/Detached()?

例如,如果我的應用程序正在運行(在手機上)並且收到呼叫,哪種方法被調用?另一個例子是,如果我實現了一個對話框來顯示,如果用戶'長按'我的自定義SurfaceView,那麼調用什麼方法呢?我假設畫布是'安全'寫入提供surfaceDestroyed()尚未被調用。

基本上我想了解我應該怎樣處理可能性,正如我所描述的(也可能更多?)以及每種方法被調用的事件。

回答

1

on... - 當事情發生時調用方法。

您可能不需要實現它們,因爲超類在大多數情況下會執行正確的操作。

如果您將日誌記錄在相關方法中,您可以看到發生了什麼/什麼時候被調用。您也可以閱讀API doc並查看source code,看看那裏做了什麼。

+1

事實上,可能沒有必要實現它們,但我正在做一些自定義動畫。我正在考慮電池壽命(例如)。如果我的自定義曲面視圖(暫時)不在視圖中,那麼執行完整長度的動畫並沒有意義,只是將視圖更新爲最終位置。 – Kerry 2012-04-28 10:55:40