2014-01-20 52 views
0

我知道有一個類似的問題,但是這一次不同的是:安卓:時間倒退錯誤

當運行我的應用程序,我得到成千上萬這個錯誤的! 這是每隔幾毫秒,當我打電話:

long curTime = SystemClock.elapsedRealtime(); 

這是從一個循環,一個線程調用:

private class LedAnimatorThread extends Thread { 
@Override 
public void run() { 
    //... 
    while(!mStopped) { 
     long curTime = SystemClock.elapsedRealtime(); 
    } 
} 

它爲什麼會發生,我怎樣才能避免這種情況?

編輯: 對不起,我完全忘記發佈在日誌上出現的警告消息。 它是類似這樣的:

/SystemClock(11814):時間倒退:上一頁9003590393023(IOCTL)與現在9003584533648(IOCTL),TID = 11856

+0

爲什麼你需要經常調用這個函數?每隔幾毫秒進行一次這樣的系統調用就很多了。 –

+0

我需要在確切的時間間隔做某事。所以我需要傳遞一些東西,比如17毫秒。我真的沒有看到目前的另一種方式 –

+0

沒關係,我把它混淆爲一個不同的功能。 –

回答

0

你有任何錯誤imfomation?也許你可以使用TimerTask類來處理你的任務。 並且不要在while循環中創建新變量。它會浪費大量的記憶。像這樣:

long curTime; 
while(!mStopped) { 
    curTime = SystemClock.elapsedRealtime(); 
}