java - 如何解析来自计时器(android)的值?

标签 java android time chronometer elapsedtime

我目前正在尝试创建一个Android应用程序,我需要从单击开始按钮到单击停止按钮所耗时(以秒为单位)。目前我有一个计时器,它在 java 类中使用以下代码:

//on start timer
public void startTimer(View view){
    myChronometer.setBase(SystemClock.elapsedRealtime());
    myChronometer.start();
}

//on stop timmer
public void stopTimer(View view){
    myChronometer.stop();
}

随后是同一类的 xml 文件中的以下代码:

    <Chronometer
    [...]
    android:id="@+id/chronometer" />

<Button
    android:text="Stop"
    [...]
    android:onClick="stopTimer"/>

<Button
    android:text="Start"
    [...]
    android:onClick="startTimer" />

有什么方法可以将使用计时器的耗时(以秒为单位)传递给同一个 java 类中的另一个方法吗?

最佳答案

显然没有方法返回值( check here ),但您可以自己轻松计算:

SystemClock.elapsedRealtime() - myChronometer.getBase()

如果您需要在停止计时器后访问时间,您可以执行以下操作

private long timerTime = Long.MIN_VALUE;

//on start timer
public void startTimer(View view){
    myChronometer.setBase(SystemClock.elapsedRealtime());
    myChronometer.start();
    timerTime = Long.MIN_VALUE;
}       

//on stop timmer
public void stopTimer(View view){
    myChronometer.stop();
    timerTime = SystemClock.elapsedRealtime() - myChronometer.getBase();
}

private long getTimerTime(){
    if(timerTime == Long.MIN_VALUE){
        return SystemClock.elapsedRealtime() - myChronometer.getBase();
    }

    return timerTime;
}

关于java - 如何解析来自计时器(android)的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42831720/

相关文章:

java - 如何运行用户创建的类文件而不是编译器创建的类文件

java - 在我的java项目中添加jdom.jar

java - 创建某种彩票游戏

android - 统一安卓 : How can I ensure quality on splash image display?

android - 扩展Widget的样式继承

r - R,动物园增加一小时

java - 将 nanos 放入 java.sql.Timestamp

java - 如何使用 RegExp 替换除双引号之外的所有标点符号

android - 'VIBRATOR_SERVICE : String' is deprecated for API 31

javascript - 如何将显示的当前时间保存在数据库表中