android studio如何在循环内设置延迟?
我有一个循环,我需要延迟,但我不能。 我已经试过两种方法,但似乎都不管用。 这是我试过的。我需要在单击按钮mNavigate时启动循环并延迟运行它。我在上面声明mNavMode为falseandroid studio如何在循环内设置延迟?,android,loops,delay,Android,Loops,Delay,我有一个循环,我需要延迟,但我不能。 我已经试过两种方法,但似乎都不管用。 这是我试过的。我需要在单击按钮mNavigate时启动循环并延迟运行它。我在上面声明mNavMode为false mNavigate.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.d(TAG, "onClick: cli
mNavigate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d(TAG, "onClick: clicked NAV icon");
mNavMode = !mNavMode;
while (mNavMode){
Log.d(TAG, "while: running");
new CountDownTimer(10000, 2500) {
public void onFinish() {
Log.d(TAG, "onFinish: finish");
}
public void onTick(long millisUntilFinished) {
if (mNavMode){
getDevLoc();
}
Log.d(TAG, "onTick: ticked "+millisUntilFinished);
}
}.start();
}
}
});
mNavigate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d(TAG, "onClick: clicked NAV icon");
mNavMode = !mNavMode;
Handler handler1 = new Handler();
while (mNavMode){
handler1.postDelayed(new Runnable() {
@Override
public void run() {
getDevLoc();
}
}, 1000 );
Log.d(TAG, "while: running");
}
}
});
我已经使用了第二个选项,使用了
处理程序
,它应该可以工作。但是您的while
条件似乎为false,在开始循环之前,您设置了mNavMode=!mNavMode
,如果您的mNavMode
事先设置为true
,则不会执行循环体。mNavMode在我添加之前设置为falsesorry@AntreasPapavasiliou尝试检查循环体是否已执行,以及如何知道延迟不起作用?在你的情况下,这仅仅是一秒钟,也许你没有注意到,试着增加它。当我运行我的应用程序并按下按钮时,我会在logcat中获得“while:running”的消息,每秒超过10次尝试将Log
语句移动到run
function@AntreasPapavasiliou可能您的import
语句有误,确保您有导入android.os.Handler代码>