尝试显示我的程序经过的时间时,单击按钮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(),然后计算增量。

07-27 22:04