我正在尋找以恆定速率更新屏幕的方法,比如說每50mSec。 在嵌入式世界中,我會配置一個定時器,每50mSec觸發一次中斷,ISR將處理更新。我對Android的想法是有一個FrameLayout,其中有多個視圖項目被註冊以對來自定時器功能的某種回調做出反應。如何控制時間激活顯示更新
希望有人會理解我的問題,並指出我在正確的方向。
我正在尋找以恆定速率更新屏幕的方法,比如說每50mSec。 在嵌入式世界中,我會配置一個定時器,每50mSec觸發一次中斷,ISR將處理更新。我對Android的想法是有一個FrameLayout,其中有多個視圖項目被註冊以對來自定時器功能的某種回調做出反應。如何控制時間激活顯示更新
希望有人會理解我的問題,並指出我在正確的方向。
您可以在Runnable
中使用handler.postDelayed
在特定時間段後調用它。
例如:
handler.post(new Runnable() {
@Override
public void run() {
handler.postDelayed(this, 50);
//do your task
}
});
確保您處理程序連接到一個單獨的(非UI)線程和當它涉及到更新UI元素,你總是做一個UI線程。
我看到了一些與此相關的帖子,無法繞過它。你知道有什麼好的參考資料可以幫助我清除頭腦中的霧嗎? – Squiggles 2012-04-23 08:29:17
是的,閱讀本文http://developer.android.com/resources/articles/timed-ui-updates.html – waqaslam 2012-04-23 09:20:09
謝謝,我已閱讀它現在需要消化它,然後試驗。似乎缺少一些東西,筆記說:「要做到這一點,只需在mUpdateTimeTask run()方法的尾部添加另一個postDelayed。」但是它不包含在代碼示例中。我猜想是過度的。 – Squiggles 2012-04-23 10:43:26
嘗試使用計時器並在時間結束時調用OnCreate()方法。 – superM 2012-04-23 07:58:55
@superM對定時器的使用有很多評論警告。我想知道是否有更好的選擇。 – Squiggles 2012-04-23 08:30:37
當你使用多線程定時器時,大部分麻煩都會出現。如果計時器和OnCreate()運行在同一個線程中,我認爲不會有太大麻煩。 – superM 2012-04-23 08:34:04