【问题标题】:Timer not working properly in android计时器在android中无法正常工作
【发布时间】:2017-02-04 17:00:46
【问题描述】:

任何人都可以给出主意,计时器将根据持续时间数组进行调度,如果一旦完成持续时间数组长度,将从第一个开始。在这个完美运行的某些循环中,有时会崩溃并通过arrayoutofboundsexception。有没有人帮帮我???

int[] duration={10000,2000,8000};
int layoutIncrment=-1;
private void layoutRotate()
{  layoutIncrment++;
    Timer timer = new Timer();
    timer.schedule(new TimerTask()
    {   public void run()
        {
            if((duration.length-1) <= layoutIncrment)
                layoutIncrment=-1;

            layoutRotate();
            Log.i("Rotation",String.valueOf(layoutIncrment));
    }   },duration[layoutIncrment],100000);
}

【问题讨论】:

  • 我可以知道那行有什么问题吗??
  • 我得到答案,每次循环都取消定时器,否则所有定时器都处于活动状态。

标签: android timer schedule android-timer


【解决方案1】:

你为什么不试试这样。它将继续在while循环中运行..这只是你想要的。对吧?

    int n=1;

    while(n>0)
    {
    for(int i=0;i<duration.length;i++)
    {

    new Handler().postDelayed(new Runnable() {
     @Override
    public void run() {
   //add ur code here
    }
    }, duration[i]);
    }
    }

【讨论】:

  • 它不工作。这个例子不断循环。我想要从一个持续时间延迟到另一个持续时间。一旦长度完成后将从第一个持续时间开始..
  • 然后使用处理程序
  • 如果你将处理程序或定时器放在for循环中,for循环连续运行不会有循环之间的延迟。
  • 你的意思是你想延迟每个持续时间??意味着例如持续时间一个完成然后你想要在开始下一个持续时间之前有一些延迟?
猜你喜欢
  • 1970-01-01
  • 2011-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-05
相关资源
最近更新 更多