J'ai essayé Handler, aucune précision obtenu du tout,Comment faire une minuterie précise sur Android?
CountDownTimer, précise la plupart du temps et
TimerTask, toujours précis, mais le premier appel.
Scénario:
Je suis en train d'arrêter son jeu après laps de temps.
appel Code
TimeTask task = new TimeTask();
Timer timer = new Timer();
task.setMediaPlayer(mediaPlayer);
timer.schedule(task, 400);
mediaPlayer.start();
J'ai créé MediaPlayer que je donne à la classe qui va TimerTask. Il va libérer MediaPlayer après un certain laps de temps.
classe qui étend TimerTask
private MediaPlayer mMediaPlayer = new MediaPlayer();
public void setMediaPlayer(MediaPlayer mediaPlayer) {
this.mMediaPlayer = mediaPlayer;
mMediaPlayer.start();
}
@Override
public void run() {
ListIterator<MediaPlayer> iterator = SoundboardMenu.mMediaPlayerList.listIterator();
while (iterator.hasNext()) {
MediaPlayer iteratedPlayer = iterator.next();
if (iteratedPlayer.equals(mMediaPlayer)) {
iteratedPlayer.release();
iterator.remove();
break;
}
}
}
Il fonctionne très bien, mais ce n'est pas toujours assez précis.
Si nous attendons plus de 5 secondes après l'appel de la classe pour étendre TimerTask et l'appeler de nouveau, il y aura un peu plus de délai et le son sera plus long. Si nous l'appelons à plusieurs reprises, nous obtenons toujours un délai légèrement plus court.
Combien de temps essayez-vous de chronométrer, et que considérez-vous exact? Que signifie «précis la plupart du temps» et «toujours précis mais sur le premier appel»? – Falmarri