前回、Timerの精度がウンチャラと書きましたが、そもそも論として、ストップウォッチの作り方の基本を間違っていました。
あまりに情けないので、書きたくないのですが、誰かの参考にでもなればということで、恥を忍んで報告してみます。
最初のダメ野郎な作り方は、Timerを使って、更新間隔ごとに、カウントを++していたんです。だから、Timerが正確に1秒ごとに更新されなければ、当然カウントも1秒ごとに増えていきませんよね?で、そこで
”Timerの精度が・・・・”
となったわけですが、そもそもこの作り方が間違いの元。
Timerは使うのですが、問題は経過時間の出し方。
スタート処理時に System.currentTimeMillis() でミリ秒単位で取得。そして、Timerの処理内で、現在のミリ秒を同様に取得し、スタート時刻との差を算出。そしてsetText。
これで全て解決です。
あまりに基本的なところを間違えていたため、ガッカリすぎます。
本業の方がみたら、実は上記の解決も解決にはなっていないかもしれませんが、少なくとも現在ストップウォッチが20分以上作動していますが、見た目ではGPS時刻とのズレは把握できませんので、まあ良しとしましょう。
また一つ勉強になりました。これで近々公開できそうです。
0 件のコメント:
コメントを投稿