首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android时延

Android时延
EN

Stack Overflow用户
提问于 2013-08-24 17:49:35
回答 1查看 2.4K关注 0票数 0

如何使延迟能够在一段时间后调用函数,但线程仍然在运行。还有比这更好的方法吗。

代码语言:javascript
复制
new Thread(new Runnable() { 
    public void run(){
        try{ Thread.sleep(recordtime); }
        catch(Exception e){}

        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                reset();
            }
        });
    }
}).start();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-24 18:14:05

若要在Ui线程上运行一些代码,请稍候:

代码语言:javascript
复制
   Handler h = new Handler(Looper.getMainLooper());

    Runnable r = new Runnable() {
        @Override
        public void run() {
            //--code run in Main, UI thread  
        }
    };

    h.postDelayed(r,2000); //-- run after 2 seconds

处理程序需要目标线程上的Looper。UI线程已经拥有它,其他线程需要首先配置。

其他选项有:

计时

代码语言:javascript
复制
  Timer t = new Timer();

    t.schedule(new TimerTask() {
        @Override
        public void run() {
           //--code run in separate thread  
        }
    },2000);

ScheduledExecutorService

代码语言:javascript
复制
    ScheduledExecutorService se = Executors.newSingleThreadScheduledExecutor();

    se.schedule(new Runnable() {
        @Override
        public void run() {
            //--code run in separate thread
        }
    },2, TimeUnit.SECONDS);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18421444

复制
相关文章

相似问题

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