変化を求める人

タイマーアプリを作ってみる

      2015/09/22

とりあえず、シンプルにタイマーアプリでも作ってみる。

あらかじめ用意されているクラスに、ちょうど CountDownTimer クラスがあるので、それを用いることにする。
ただし、CountDownTimerに対して指示できるのはStartとCancelだけ。
Pauseが出来ないので、そこらへんを考慮する必要がある。

CountDownTimerインスタンスの作成

cancel() を実行するとタイマーを止めることが出来るが、
再び start() を呼んでも残り時間はまた3秒からになってしまう。

そこで、 onTick で取得できる残り時間を、別に控えておく方法をとることにした。
pauseをしたいときはcancel()の後、一度インスタンスを破棄。
pauseから再開するときは、calcelの直前まで控えていた残り時間を使って新しいCountDownTimerを作成し start()。

ただ、onTick が呼ばれる間隔が長いとそれだけ誤差も大きくなるので、短めに設定しないとタイマーとして微妙な感じになりそう。

追記

Pause機能などを実装したクラスを作ってみた。

とりあえず、動くことは確認したけど、実際のお仕事としてプログラムを書いたことがないので、そういう観点から見るとどうなのかわからない。実用に耐えるようにするにはもっと考えることがありそう。
「ここがおかしい」という箇所を指摘していただけると助かります。

また、変数名やコメントなどそのままにしてありますが、コメントは自分用なので何のことかわからないところもあるかもしれません。

CountDownTimerを利用してpause機能などを追加したクラス

 - android, android - api, アプリ , ,

スポンサーリンク

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

  関連記事

Android Serviceのメモ。onBind,onRebind,onUnbindが呼ばれる条件

onBindやonUnbindが呼ばれるタイミングが紛らわしかったのでメモ。 個 …

AndroidStudioでコピペする方法。デフォルトではクリップボードから貼り付けできない

AndroidStudioでは外部アプリからのコピペがデフォルトだと出来ない。 …

Androidアプリの「デフォルトで起動」設定の初期化

Androidでは、処理ごとに担当するアプリが決まっています。その都度、必要なア …

Android「標準ブラウザ」から「Chrome」へブックマークを移行する方法

追記 久々に確認してみたところ、この記事の方法は出来なくなっていました。[現時点 …

Android4.3以下の場合、標準ブラウザは無効推奨らしいのでその方法。

先日、ブックマークについての記事を書きました。 その際、親が利用していたのは「標 …