Android:Array Loop - 仅在第一次循环结束后的下一个元素

时间:2014-10-05 21:15:45

标签: android

我想用Array元素启动void函数。简单的例子:

protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.seven_minutes);        
            Excercise();


 final String Array[] = {"e1","e2","e3"};

 for (int i = 0; i <  Array.length; i++ ){

    jump(Array[i]);

     }
}

private void jump (String i){

wait 30s;

} 

如何制作,第二个[i]只有在跳转(Array [i])功能完成后才会启动?喜欢30多岁了吗?

1 个答案:

答案 0 :(得分:0)

假设在另一个线程中执行了jump方法,你需要在UI线程(onCreate)内执行一个join()方法,它允许一个线程等待另一个线程的完成,直到它可以继续执行。

然而,这似乎不是一个好主意,因为您的UI线程将被阻止太长时间。

您应该异步管理它们。有很多方法可以做到。例如,您可以使用允许您在后台执行某些代码的[AsyncTask][1](在doInBackground内),并在后台执行此代码的末尾,将在UI线程中执行一些代码({{ 1}})。 因此,您可以第一次检查您的条件,然后调用AsyncTask,并在onPostExecute中重新检查条件(Array.lenght&lt; i),如果已经验证,您可以重新启动AsyncTask。