J'ai un chronomètre millisecondes qui fonctionne bien.
Code du bouton: exécutable: p> fonction pour vérifier si le temps correspond: P> public void check(Integer secs, long milli){
if (secs.equals(45) && milli.equals(367)){
txtCheck.setText("done");
}
}
3 Réponses :
Avez-vous envisagé d'utiliser la classe Android Cela a été une aide énorme pour moi lorsque vous faites le même type de travail que vous êtes. P> Instant CODE> Classe comme décrit ici?
https://developer.android.com/reference/kotlin/java/time/ Instant P>
Connaissez-vous un exemple de cette classe?
Vous devez faire cela pour obtenir le en milliseconde:
Quelle est la différence entre System.Currenttimemillis et System.Usptimemillis? Devrais-je calculer 45 secondes et 367 millisecondes ou directement 45367 millisecondes?
Il est probable que vos calculs prennent plus de 1 milliseconde. Vous ne devriez pas vérifier cela souvent. C'est cher et pas sûr. Pourquoi ne pas utiliser un Countowntimer ? Il fait le travail et il est basé sur des millisecondes.
private long[] checkTimes = new long[]{ 45367L,90446L,25384L}; for (int i = 0; i < checkTimes.length; i++) { new CountDownTimer(checkTimes[i], 1000) { public void onTick(long millisUntilFinished) { txtCheck.setText("seconds remaining: " + millisUntilFinished / 1000); } public void onFinish() { txtCheck.setText("done"); } }.start(); }
Ça marche. Souhaitez-vous s'il vous plaît m'aider à le faire n fois? Je veux dire que je dois ajouter une fonction pour la répéter plusieurs fois (avec différentes longueurs).
ajouté une simple boucle.
Qu'entendez-vous par cela ne fonctionne pas? Quel est le résultat attendu et qu'est-ce que vous obtenez à la place? Pourquoi utilisez-vous la méthode Pièce-ci avec retard de 0? Vous devez également formater votre code un peu mieux pour la lisibilité.
Un type de données primitive n'a pas de méthode égale. Vous devez utiliser «==» ou enveloppez-le avec
long.parelong (); code> et une exécution n'est pas un thread, c'est une tâche qui peut être exécutée par un fil.
@NullDroid. J'ai changé le code pour le rendre plus clair (?). Je ne sais pas pourquoi suis-je en train d'utiliser .Postdélayed avec 0 retard (j'ai copié le code d'un didacticiel) et le chronomètre fonctionne.
@Linuxserver. Mêmes résultats avec votre suggestion.
Vous auriez pu essayer de «comparer» de Kotlin. Cela peut résoudre le problème.