我有一个while循环,我需要延迟,但我不能。 我已经尝试了两种方法,但似乎都没有效果。 这是我尝试过的。我需要当我点击按钮mNavigate启动循环并延迟运行它。我在上面声明mNavMode为false
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");
}
}
});
答案 0 :(得分:0)
我使用了drange 20140222 20140321
drange 20151221 20160122 +1 month
s=20151221 e=20160122 i="+1 month"
drange $((s + 1)) $e $i
的第二个选项,它应该可行。但是,您的Handler
条件似乎是假的,就在您开始设置while
的循环之前,如果您的mNavMode = !mNavMode
预先设置为mNavMode
,那么您的循环体将永远不会执行。