2011年8月26日金曜日

ストップウォッチ・・・・愚かな自分

前回、Timerの精度がウンチャラと書きましたが、そもそも論として、ストップウォッチの作り方の基本を間違っていました。

あまりに情けないので、書きたくないのですが、誰かの参考にでもなればということで、恥を忍んで報告してみます。

最初のダメ野郎な作り方は、Timerを使って、更新間隔ごとに、カウントを++していたんです。だから、Timerが正確に1秒ごとに更新されなければ、当然カウントも1秒ごとに増えていきませんよね?で、そこで

”Timerの精度が・・・・”

となったわけですが、そもそもこの作り方が間違いの元。

Timerは使うのですが、問題は経過時間の出し方。

スタート処理時に System.currentTimeMillis() でミリ秒単位で取得。そして、Timerの処理内で、現在のミリ秒を同様に取得し、スタート時刻との差を算出。そしてsetText。


これで全て解決です。

あまりに基本的なところを間違えていたため、ガッカリすぎます。


本業の方がみたら、実は上記の解決も解決にはなっていないかもしれませんが、少なくとも現在ストップウォッチが20分以上作動していますが、見た目ではGPS時刻とのズレは把握できませんので、まあ良しとしましょう。


また一つ勉強になりました。これで近々公開できそうです。

0 件のコメント:

コメントを投稿