2015-09-19 93 views
2

我希望有時(當一個標誌開啓時)在Android活動中更新每個繪製框架(即,不是應用程序不可見,每幀不超過一次)中的幾個UI組件。我該怎麼做呢?如何在Android上每幀調用一次Activity方法?

+0

你嘗試過[predraw listener](http://developer.android.com/reference/android/view/ViewTreeObserver.OnPreDrawListener.html)嗎? – Droidekas

回答

5

該問題明確指出「每一個繪製的框架」,這表明覆蓋onDraw()無論它是否正在繪製將準確解決您的問題。

如果這不是你要做的,你應該看看Choreographer,它會在每個顯示刷新時調用一次回調。每次調用時都必須更新回調。要在活動處於後臺時停止回叫,請在onResume()中建立回叫,並在onPause()中設置一個標誌;如果回調看到標誌設置,它不會自行更新。

Choreographer的文檔記錄了執行常見事情的更高級API功能。如果其中的一個符合您的需求,那麼優先考慮使用較低級別的API。

+0

謝謝!我試圖使用更高級別的API,但我的要求真的是「每個vsync都執行任意更新」,所以對於我而言,「編排器」似乎是最簡潔的解決方案。 – Blixt

相關問題