CountDownTimer将无法运行

时间:2013-11-16 20:19:36

标签: android countdowntimer

无法弄清楚我的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;
}

}

1 个答案:

答案 0 :(得分:0)

两个注意事项:1。不要使用byte用于标记,这是boolean的用途。 2. CountDownTimer.onTick()在UI线程中运行,它被while(timer.time_up==0);循环阻止,因此无法运行。删除while循环并在onTick()onFinish()中打印一些日志语句。