2017-04-17 6 views
0

非常に高い値「119660898」を受け取ったボタンをクリックした後、プログラムの経過時間を表示しようとしています。私が3秒待ってボタンをリクライクすると、合計は期待どおりに約3秒上がります。ボタンを使用してSystemClock.elapsedRealtimeをテキストビューに表示すると、非常に大きな値を得ています

なぜ初期値が高すぎるのか説明できる人はいますか? 以下はボタンで使用しているコードです。

 FinalTime = SystemClock.elapsedRealtime(); 

     TextView text = (TextView) findViewById(R.id.textView1); 
     text.setText("n " + FinalTime); 

答えて

2

[...]非常に高い値を受け取るボタンイムをクリックした後、私のプログラムの経過時間を表示しようとすると、初期値が非常に高いので、なぜ誰も説明できますか?

プログラムの経過時間がであるため、です。 docsから :

elapsedRealtime()とelapsedRealtimeNanos()リターンシステムが起動して、深い眠りが含まれてからの時間。このクロックは単調であることが保証されており、CPUが省電力モードになってもチェックを続けます。したがって、汎用のインターバルタイミングに推奨される基準です。

アプリが起動してからの経過時間を知りたい場合は、アプリ起動時にSystemClock.elapsedRealtime()を保存してからデルタを計算する必要があります。

+0

私は今それを得る、非常にありがとう。 –