3

デフォルトの00:00以外の特定の時間でクロノメーターを開始するにはどうすればよいですか?chronometerObj.setBase(startTime)を設定することはできますか?

ch.setBase(SystemClock.elapsedRealtime()-anylongvalue); ch.start();longvalueを入力した場合、開始時刻を設定できますか?

4

2 に答える 2

0

Chronometer オブジェクトは、インスタンス化されると、現在に設定されている基本時間にデフォルト設定されます (から取得した値のように「現在」SystemClock.elapsedRealtime())。

を呼び出すと、基準時刻 (00:00 時刻) を変更できますsetBase(<some other value>)

おそらく、私は実験を試みていませんが、setBase(0).

したがって、クロノメーターを使用して、過去に行った任意の呼び出しからの経過時間を確認できますSystemClock.elapsedRealtime()。秘訣は、アプリや電話の状態が変化しても確実に元に戻せる場所にその値を保存しておく必要があるということです。( Android: 永続的なストップウォッチとしてのクロノメーターを参照してください。開始時刻を設定するにはどうすればよいですか? クロノメーターの「ベース」とは何ですか?など)。

多くの回答は、過去の任意の時間をインテントに保持することを提案しています。しかし、せいぜい、これは電話がオンになっている間だけタイマーをカウントアップし続けるだけです。

私はすでにデータベースを使用しており、そこに開始時刻を保存しています。そのために 1 列のテーブルを作成し、そこに 1 つのレコードを格納しました。クロノメーターの開始時間は、電話の再起動後も残ります。

于 2016-07-23T21:18:18.033 に答える