我得到了socket.io的通知,在我的android应用程序中启动倒数计时器。我使用Handler将数据从socket.io回调发送到UI线程。处理程序的消息完美。但从处理程序启动倒计时器不起作用(不会调用onTick()函数)。如果我用UI元素启动它,一切都会好的。当倒数计时器不是从UI线程操作时,最好的方法是什么?从处理程序开始倒数计时器的问题
mHandler = new Handler(){
public void handleMessage(Message inputMessage) {
mBattle = (Battle) inputMessage.obj;
switch (inputMessage.what) {
case NO_BATTLE:
System.out.println("got message NO_BATTLE");
break;
//.................
case START_BATTLE:
startCountdownTimer(mBattle.getCountdown());
System.out.println("got message START_BATTLE");
break;
}
}
和倒数计时功能:
private void startProgressBar(final int time){
if (time != 0) {
new CountDownTimer(time, 1000) {
@Override
public void onTick(long millisUntilFinished) {
Log.v("Log_tag", "Tick of Progress " + i + " " +
+ millisUntilFinished);
i++;
}
@Override
public void onFinish() {
i=0;
}
}.start();
}
使用mHandler而不是CountDownTimer来计数diwn – pskink