Ich aktualisiere ein Bild mithilfe des Timers, aber es führt zu einem schwerwiegenden Leistungsproblem. Dann drucke ich Protokolle und finde heraus, dass mein Timer schneller als 1500 läuft. Also, was ist das Problem?Was ist los mit meinem Timer-Thread?
Zeitplan bei falsch rate:
startToDraw() 353:. System.currentTimeMillis() = 1332742387400
startToDraw() 353:. System.currentTimeMillis() = 1332742387410
startToDraw() 353. : System.currentTimeMillis() = 1332742387438
startToDraw() 353:. System.currentTimeMillis() = 1332742387449
startToDraw() 353:. System.currentTimeMillis() = 1332742387472
timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
while (!isDestroyed) {
try {
Log.i(getClass().getName(), "startToDraw().353: System.currentTimeMillis() = " + System.currentTimeMillis());
handler.sendMessage(new Message());
} catch (Exception e) {
}
}
}
}, 0, 1500);
Ich sehe nicht, wo Sie warten? 'sendMessage' kehrt sofort zurück. – sastraxi
haben Sie versucht, dem Hauptthread Schlaf hinzuzufügen? – Andreas
Versuchen Sie, Thread.sleep (Millisekunden) zu verwenden; –