您好我想实现这样的行为: 每一秒我想从List获取一个字符串并打印出来。 (实际上我希望我的观点为:setVisibility(View.Visible),但它是一样的。
final Handler handler = new Handler();
for (String str : layoutsList) {
handler.postDelayed(new Runnable() {
@Override
public void run() {
Log.d("LevelOneFragment", "tick" + str);
i++;
}
}, 1000);
}
但是这个解决方案不起作用。 我该如何正确地做到这一点?
答案 0 :(得分:0)
为什么要阻止UI线程? : - (
for (String str : layoutsList) {
Log.d("LevelOneFragment", "tick" + str);
i++;
Thread.sleep(1000);
}
答案 1 :(得分:0)
现在,您正在为处理程序上的所有工作设置延迟1000毫秒。这意味着每个工作项目将基本上同时发生,因为循环执行得很快。
相反,为什么不尝试以越来越大的延迟安排每项工作,例如(i + 1)* 1000?
for (int i = 0; i < layoutsList.size(); i++) {
final String str = layoutsList.get(i);
handler.postDelayed(new Runnable() {
@Override
public void run() {
Log.d("LevelOneFragment", "tick" + str);
}
}, (i+1)*1000);