【问题标题】:Schedule a call to a method? [duplicate]安排对方法的调用? [复制]
【发布时间】:2012-06-26 04:32:11
【问题描述】:

可能重复:
How to call a method after a delay

当用户点击一个按钮时,我想这样做(myVar1);。 1 秒后我想这样做(myVar2);。如何安排第二次通话?

【问题讨论】:

标签: java android


【解决方案1】:

在桌面 GUI 应用程序中,我会使用来自 Swing API 的javax.swing.Timer。也许Android API有类似的东西?当然,上面 imran khan 的 Thread 示例本质上是一样的。

【讨论】:

    【解决方案2】:

    创建一个处理程序并在可运行对象上执行postDelayed()。检查documentation for Handler

    Handler handler = new Handler();
    final Runnable r = new Runnable()
    {
        public void run() 
        {
            doThis(myVar2);.
        }
    };
    ...
    ...
    handler.postDelayed(r, 1000);
    

    【讨论】:

    • 原帖并没有提到 Android。
    • 发布时有Android标签。稍后编辑..查看编辑历史,,,
    • @mergeconflict,现在又来了。
    【解决方案3】:

    使用 Thread 尝试这种方式:

     btnbtnstart.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
        // TODO Auto-generated method stub
            if(mthreadRunning==false)
            {
                doThis(myVar1);
                mthreadRunning=true;
                dojobThread();
            }
        }
    });
    
     public void dojobThread(){
            Thread th=new Thread(){
             @Override
             public void run(){
              try
              {
               while(mthreadRunning)
               {
               Thread.sleep(100L);
               mthreadRunning=false;
               doThis(myVar2);//call doThis(myVar2); here after 1 second delay
    
               }
              }catch (InterruptedException e) {
                // TODO: handle exception
              }
             }
            };
            th.start();
           }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 2011-08-05
      • 2019-11-04
      • 1970-01-01
      • 1970-01-01
      • 2019-01-15
      相关资源
      最近更新 更多