2017-03-07 70 views
0

我有一套指令需要重複執行。 重複延遲是變量(延遲取自文件)。Android有多個帖子延遲

重複時間必須很精確精確(毫秒精度)。

我試圖使用postDelayed的處理程序,但準確性在時間上丟失。發生這種情況是因爲重複頻率超過10次/秒。

任何想法都比歡迎!

這裏是處理程序例如:

new Runnable() { 
     @Override 
     public void run() {    
     mHandler.postDelayed(this, delay);    
     barometerResult.gotBarometer(barometerValueModelList.get(i).getBarometerValue());    
     } 
    }.run(); 
+0

使用Handler發佈您的代碼。 此代碼是在您的應用程序處於活動狀態時執行的,還是在設備處於非活動狀態時可能在後臺調用代碼的可能性? – Goran

+0

您的處理程序是否更新視圖?我猜這是在主線程上運行的,對吧? – Goran

+0

你的minSdkVersion是什麼? – Cochi

回答

0

我不認爲這是一個使用處理程序是個好主意,它與許多其他的事情在排隊做UI線程中運行,所以這不能保證你的可運行的代碼將被如此精確地執行。

如果你在Runnable中的工作只是一些沒有涉及更新UI的邏輯任務。考慮使用一個Timer來做到這一點,但是它會運行在一個單獨的線程上。

+0

Handler可以在主線程(UI)上使用。 – Goran

+0

據我所知,處理程序比java定時器更精確: http://stackoverflow.com/questions/20330355/timertask-or-handler –