【问题标题】:Check if Chronometer is running检查计时器是否正在运行
【发布时间】:2011-09-09 09:50:16
【问题描述】:

android 中的计时器如何检查计时器是在运行还是停止? 如果开始,那么我想停止它,如果不运行,则启动计时器。

【问题讨论】:

    标签: android chronometer


    【解决方案1】:

    您可以使用布尔变量检查这一点。当您启动计时器时,您将布尔变量设置为 true,当它停止时,您将布尔变量设置为 false。

    boolean isChronometerRunning = false;
    if (true)  // condition on which you check whether it's start or stop
    {
        chronometer.start();
        isChronometerRunning  = true;
    }
    else
    {
      chronometer.stop();
      isChronometerRunning  = false;
    }
    

    【讨论】:

      【解决方案2】:

      你可以extendChronomter,像这样:

      import android.content.Context;
      import android.os.SystemClock;
      import android.util.AttributeSet;
      import android.widget.Chronometer;
      
      public class MyChronometer extends Chronometer {
      
          private boolean isRunning = false;
      
          public MyChronometer(Context context) {
              super(context);
          }
      
          public MyChronometer(Context context, AttributeSet attrs) {
              super(context, attrs);
          }
      
          public MyChronometer(Context context, AttributeSet attrs, int defStyle) {
              super(context, attrs, defStyle);
          }
      
          @Override
          public void start() {
              super.start();
              isRunning = true;
          }
      
          @Override
          public void stop() {
              super.stop();
              isRunning = false;
          }
      
          public boolean isRunning() {
              return isRunning;
          }
      
      }
      

      然后只需致电isRunning()

      【讨论】:

        【解决方案3】:

        奇怪的是它没有公开该属性。除了自己跟踪之外,我真的没有找到一种理想的检查方法。

        你可以为那个类取the source code,自己在你的项目中实现它,然后添加一个这样的方法:

        public boolean getStarted() {
            return mStarted;
        }
        

        【讨论】:

          【解决方案4】:
          private boolean isChronometerRunning = false;
          
          private Chronometer chronometer;
          
          chronometer = (Chronometer) findViewById(R.id.chronometer);
          
          chronometer.setBase(SystemClock.elapsedRealtime());
          chronometer.start();
          
          isChronometerRunning = true;
          

          现在每当想要停止计时器时,请使用以下代码检查计时器是否正在运行。

              if (isChronometerRunning){
                  chronometer_call.stop();
              }
          

          【讨论】:

            猜你喜欢
            • 2021-10-27
            • 2017-08-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-10-01
            • 2018-10-12
            • 2014-08-25
            相关资源
            最近更新 更多