0

我只想在单击按钮后每 3 秒调用一次函数这里出了什么问题-

 galleryBtn.setOnClickListener(new OnClickListener() {
           @Override
           public void onClick(View v) {
            final Handler handler = new Handler();
               for(int i = 0;i<3;i++){
                handler.postDelayed(new Runnable() {
                    @Override
                    public void run() {
                        // Do something after 5s = 5000ms
                        viewAnimator.showNext();
                   }
                }, 3000);
               } 
              }
    });
4

1 回答 1

0

您实际上并没有说出了什么问题,但我会大胆猜测什么都没有发生(即没有动画),其原因可能是您的 Handler 在处理任何事情之前很久就被 GC 了。尝试将“处理程序”范围从局部变量移动到类成员。

(另请注意,即使它有效,您的所有 3 个函数也将或多或少同时运行。如果您希望它们相隔 3 秒运行,您应该将 '3000' 更改为 'i*3000'。)

于 2013-10-24T14:58:06.277 回答