Equivalent to javax.swing.Timer in Android

前端 未结 3 939
无人共我
无人共我 2021-01-06 01:45

Is there something that looks like the javax.swing.Timer on Android. I know how to create own Threads, but is there something that is like the swing-timer?

相关标签:
3条回答
  • 2021-01-06 02:11

    The main point of javax.swing.Timer is that it executes tasks on GUI thread (EDT - event dispatching thread). This makes it safe to manipulate Swing components.

    In Android there is also EDT and you should only manipulate GUI elements on EDT. To delay your code and then run it on EDT use view.postDelayed(runnable).

    0 讨论(0)
  • 2021-01-06 02:14

    There is also Java's TimerTask. Here's an example from my code where I'm playing audio samples:

    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);
    
    0 讨论(0)
  • 2021-01-06 02:26

    You are probably looking for the class android.os.CountDownTimer

    You can inherit the class like this:

    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");
        }
    }
    
    0 讨论(0)
提交回复
热议问题