无法弄清楚我的CountDownTimer无法运行的原因。我可以看到,当我调用start并且mStopTImeInFuture似乎递增时,它正确地初始化了计时器变量mCountdownInterval和MMillisInFuture。
我创建了一个time_up变量来尝试设置何时增加和过期。
我创建了MyCount类。
public class MyCount extends CountDownTimer {
public byte time_up;
public MyCount(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
@Override
public void onFinish() {
time_up=1;
}
@Override
public void onTick(long millisUntilFinished) {
time_up=1;
}
}
然后在MainActivity中实现。
package com.example.myapplication;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
private MyCount timer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
timer = new MyCount(10000,250);
timer.time_up =0;
timer.start();
while(timer.time_up==0);
timer.time_up=0;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
答案 0 :(得分:0)
两个注意事项:1。不要使用byte
用于标记,这是boolean
的用途。 2. CountDownTimer.onTick()
在UI线程中运行,它被while(timer.time_up==0);
循环阻止,因此无法运行。删除while循环并在onTick()
和onFinish()
中打印一些日志语句。