对于一个简单的计时器应用程序,我尝试在我的应用程序中添加一个TextView,其中包含"剩余15秒"显然这会每隔一秒更改一次,直到它最终更改为"时间到了!& #34 ;.我的想法是使用这样的循环:
while(now<endTime):
remaining=endTime-now;
text.setText(remaining);
虽然这可行,但我不确定这是否是正确的做法,或者是否有更好的选择。
答案 0 :(得分:1)
改为使用CountDownTimer。
我使用此代码段来获得类似的结果:
final int secs = 5;
new CountDownTimer((secs +1) * 1000, 1000) // Wait 5 secs, tick every 1 sec
{
@Override
public final void onTick(final long millisUntilFinished)
{
txtCount.setText("" + (int) (millisUntilFinished * .001f));
}
@Override
public final void onFinish()
{
txtCount.setText("GO!");
}
}.start();
在onFinish()处理程序中,您可以执行“经过时间”的事情
答案 1 :(得分:1)
您可以使用处理程序执行以下操作:
Handler myHandler=new Handler();
myHandler.postDelayed(timer, 1000);
private Runnable timer= new Runnable() {
public void run() {
if(counter==15){
textview.setText("Time Up");
counter=0;
}
else{
counter++;
textview.setText(counter+ " remaining");}
}
};