Je suis dans le widget et androïde et vérification du temps écoulé entre deux appels de System.NanOTIME () et le nombre est énorme. Comment mesurez-vous le temps écoulé avec cela? Cela devrait être une fraaction d'une seconde et c'est plutôt bien plus. Merci p>
3 Réponses :
Une seconde contient 1 000 000 000 nanosecondes, de sorte que votre numéro est dans cette plage, c'est raisonnable. P>
the Si vous voulez une mesure de temps avec une granularité plus grande, considérez Notez que sur la plate-forme Android, il existe 3 horloges de système distinctes qui soutiennent différentes "mesures" de temps; Voir Pour vos informations, "Nano-" est l'un des préfixes standard définit par le système international d'unités (SI) - voir http://physics.nist.gov/cuu/units/prefixes.html . P>
Si vous pensez vraiment que "ils" ont eu tort et que "nano-" est trop petit, vous pouvez toujours écrire une lettre au NIST. Je suis sûr que quelqu'un l'apprécierait ...: -) p> system.nanotime () code> retourne une valeur temporelle dont la granularité est une nanoseconde; Ie 10 -9 sup> secondes, comme décrit dans le Javadoc . La différence entre deux appels vers
system.nanotime () code> une fraction substantielle d'une seconde séparation est liée à un grand nombre. P>
System.Currenttimemillis () code>
... ou divisez simplement les valeurs nanosecondes par une puissance appropriée de 10 en fonction de votre application. P>
systemclock code>
. Si vous programmez explicitement pour la plate-forme Android, vous devez lire le Javadoc et décider quelle mesure est la plus appropriée à ce que vous faites. P>
Android Documents Recommandez SystemClock.Usptimemillis () Code> pour le calendrier d'intervalle. Comme c'est ce que la plupart des fonctions intégrées utilisent, il existe une forte motivation pour qu'elle soit bien mise en œuvre sur tous les appareils. Voir la discussion dans SystemClock
ou systemclock.elapsédrealtime () comme ".. la base recommandée pour le calendrier d'intervalle général"
En fait, développeur.android.com/reference/andrroid/os/systemclock Dit Currenttimemillis () CODE> "ne doit être utilisé que lorsque la correspondance avec des dates et des horaires réels est importante, par exemple dans une application de calendrier ou de réveil. Intervalle ou mesures de temps écoulées doivent utiliser une horloge différente." À savoir,
elapsédrealtime () code>.
Si vous le souhaitez sous forme fractionnaire, prenez juste votre valeur code> / 10 ^ 9 où
valeur code> est votre différence dans
nanotime () code> s .
07-27 11:35:47.196: INFO/NanoTime(14237): 500000000 ns is the same as 0.5 seconds
fois 10 ^ 9 code>? ce serait extrême grand ... L'échantillon de code est correct
Euh ... Savez-vous ce qu'est une nanoseconde?