尝试显示我的程序经过的时间时,单击按钮im会收到非常高的值“ 119660898”。如果我等待例如3秒钟,然后重新单击按钮,则总的运行时间将比预期的快3秒钟。
谁能解释为什么初始值这么高?
以下是我在按钮中使用的代码。
FinalTime = SystemClock.elapsedRealtime();
TextView text = (TextView) findViewById(R.id.textView1);
text.setText("n " + FinalTime);
最佳答案
当尝试显示程序的运行时间时,单击按钮im会收到很高的值。谁能解释为什么初始值这么高?
因为这不是您的程序经过的时间。
从docs:
elapsedRealtime()和elapsedRealtimeNanos()返回自系统启动以来的时间,并包括深度睡眠。确保该时钟为单调时钟,即使CPU处于省电模式,该时钟也继续滴答作响,因此通用间隔定时的推荐依据是该时钟。
如果您想知道自应用程序启动以来经过的时间,则需要在应用程序启动时保存SystemClock.elapsedRealtime()
,然后计算增量。