我想用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多岁了吗?
答案 0 :(得分:0)
假设在另一个线程中执行了jump方法,你需要在UI线程(onCreate)内执行一个join()
方法,它允许一个线程等待另一个线程的完成,直到它可以继续执行。
然而,这似乎不是一个好主意,因为您的UI线程将被阻止太长时间。
您应该异步管理它们。有很多方法可以做到。例如,您可以使用允许您在后台执行某些代码的[AsyncTask][1]
(在doInBackground
内),并在后台执行此代码的末尾,将在UI线程中执行一些代码({{ 1}})。
因此,您可以第一次检查您的条件,然后调用AsyncTask,并在onPostExecute中重新检查条件(Array.lenght&lt; i),如果已经验证,您可以重新启动AsyncTask。