首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >相当于安卓系统中的javax.swing.Timer

相当于安卓系统中的javax.swing.Timer
EN

Stack Overflow用户
提问于 2011-09-01 00:13:38
回答 4查看 2.6K关注 0票数 5

有没有看起来像安卓系统上的javax.swing.Timer的东西。我知道如何创建自己的线程,但是有没有像swing-timer这样的东西呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-09-01 00:28:26

还有Java的TimerTask。下面是我的代码中的一个例子,我正在播放音频样本:

代码语言:javascript
复制
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);
票数 1
EN

Stack Overflow用户

发布于 2011-09-01 00:20:40

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

你可以像这样继承这个类:

代码语言:javascript
复制
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");
    }
}
票数 6
EN

Stack Overflow用户

发布于 2011-09-01 00:34:20

javax.swing.Timer的主要特点是在GUI线程(事件调度线程)上执行任务。这使得操作Swing组件变得安全。

在Android中也有EDT,你应该只使用manipulate GUI elements on EDT。要延迟您的代码,然后在EDT上运行它,请使用view.postDelayed(runnable)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7260074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档