0

重複の可能性:
遅延後にメソッドを呼び出す方法

ユーザーがボタンをクリックすると、doThis(myVar1); が必要になります。1 秒後、doThis(myVar2); を実行します。2 回目の通話をスケジュールするにはどうすればよいですか?

4

3 に答える 3

2

ハンドラーを作成postDelayed()し、ランナブルに対して実行します。Handler のドキュメントを確認してください。

Handler handler = new Handler();
final Runnable r = new Runnable()
{
    public void run() 
    {
        doThis(myVar2);.
    }
};
...
...
handler.postDelayed(r, 1000);
于 2012-06-24T19:28:01.463 に答える
2

スレッドを使用してこの方法を試してください:

 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();
       }
于 2012-06-24T19:33:03.400 に答える
1

デスクトップ GUI アプリではjavax.swing.Timer、Swing API から使用します。おそらく、Android API にも似たようなものがありますか? もちろん、上記の imran khan による Thread の例は本質的に同じものです。

于 2012-06-24T19:37:32.503 に答える