相当于Android中的javax.swing.Timer

是否有类似于Android上的javax.swing.Timer东西。 我知道如何创建自己的Threads,但有什么东西像swing-timer?

还有Java的TimerTask。 这是我的代码中我正在播放音频样本的示例:

 import java.util.Timer; import java.util.TimerTask; // from constructor, shown here out of place timer = new Timer(); // and in method, again, shown out of place: INTERVAL_MILLISECONDS = (int)((double)(bufSize) / (double)(nativeSampleRate * 2) * 1000); timer.scheduleAtFixedRate( new TimerTask() { public void run() { synchronized(this){ track.write(data, 0, bufSize); track.play(); } } }, 0, INTERVAL_MILLISECONDS); 

您可能正在寻找android.os.CountDownTimer

您可以inheritance这样的类:

 class MyTimer extends CountDownTimer { public MyTimer(int secsInFuture) { super(secsInFuture*1000, 1000); //interval/ticks each second. } @Override public void onFinish() { Log.d("mytag","timer finished!"); } @Override public void onTick(long millisUntilFinished) { //fired on each interval Log.d("mytag","tick; " + millisUntilFinished + " ms left"); } } 

javax.swing.Timer要点是它在GUI线程上执行任务(EDT – 事件调度线程)。 这样可以安全地操作Swing组件。

在Android中也有EDT,你应该只在EDT上操作GUI元素 。 要延迟代码然后在EDT上运行它,请使用view.postDelayed(runnable)