如何在没有线程/ runnable的情况下使代码进入睡眠状态。我需要修改Android应用程序中的布局,操作方法并再次反转布局更改。然而,这个方法包含计数器,每当我有一个内部类,比如一个可运行的timertask或类似的变量需要是最终的,但是我不能增加计数器。
ChangeLayout();
int round = 0;
while (isPlaying && round < 24){
round++;
int specificOccurrence = 0;
while (isPlaying && specificOccurence < 8) {
if (somethingSpecific){
specificOccurence++;
}
// operates this while somehow with a 1 second break;
// after that just continue.
waitASecondSomehow();
}
}
ReverseLayoutChanges();
答案 0 :(得分:2)
使用处理程序使用postDelayed计划主线程的工作:
Handler h = new Handler();
h.postDelayed(runnable, delayInMillis);
上面的runnable是一个Runnable实例,它执行您想在主线程上执行的操作。继续在每个时间间隔发布它,也许在runnable本身内重复,以安排下一次迭代。
答案 1 :(得分:1)
您应该使用Timer。
Timer mUiUpdateTimer;
TimerTask uiUpdateTask;
int mistakes=0;
int periodTime=1000;
private void createTimeHandler()
{
mUiUpdateTimer = new Timer();
final Handler uiUpdateHandler = new Handler();
final Runnable uiUpdateRunnable = new Runnable() {
@Override
public void run() {
// other jobs
mistakes++;
}
};
uiUpdateTask = new TimerTask() {
@Override
public void run() {
//for safe UI handling
uiUpdateHandler.post(uiUpdateRunnable);
}
};
mUiUpdateTimer.scheduleAtFixedRate(uiUpdateTask, 0, periodTime);
}
答案 2 :(得分:0)
在try块中添加下面的处理程序
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
mistakes++;
}
}
}, 3000);