-3

任何人都可以提出想法,计时器将根据持续时间数组进行调度,如果一旦完成持续时间数组长度,将从第一个开始。在这个完美运行的某些循环中,有时会崩溃并通过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);
}
4

1 回答 1

0

你为什么不试试这样。它将继续在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]);
    }
    }
于 2016-09-27T07:32:09.410 回答