在android中创建一个简单的数字计时器

cla*_*n33 1 android timer

我基本上只是想从应用程序启动时的0:00开始跟踪秒和分钟,并在TextView中显示它是最好的方法吗?

Kha*_*war 5

当计时器启动非UI线程时,我宁愿不使用它来更新TextView.在您的情况下,Timer可以由Handler类替换.而且您还可以避免这个新的非UI线程的开销.是一个例子:

private Handler mHandler = new Handler();

OnClickListener mStartListener = new OnClickListener() 
{
   public void onClick(View v)
   {
      if (mStartTime == 0L) 
      {
        mStartTime = System.currentTimeMillis();
        mHandler.removeCallbacks(mUpdateTimeTask);
        mHandler.postDelayed(mUpdateTimeTask, 100);
      }
   }
};

.........

private Runnable mUpdateTimeTask = new Runnable() 
{
   public void run() 
   {
     final long start = mStartTime;
     long millis = SystemClock.uptimeMillis() - start;
     int seconds = (int) (millis / 1000);
     int minutes = seconds / 60;
     seconds     = seconds % 60;

     if (seconds < 10) 
     {
        mTimeLabel.setText("" + minutes + ":0" + seconds);
     } 
     else 
     {
        mTimeLabel.setText("" + minutes + ":" + seconds);            
     }

     mHandler.postAtTime(this,start + (((minutes * 60) + seconds + 1) * 1000));
   }
}; 
Run Code Online (Sandbox Code Playgroud)