android计时器使应用程序崩溃

时间:2014-01-11 10:25:26

标签: android

我正在尝试创建一个在5秒后执行某些操作的计时器。

现在我的主要活动(我只有1)我写了这个课:

class Reminder {
Timer timer;

public Reminder(int seconds) {
    timer = new Timer();
    timer.schedule(new RemindTask(), seconds*1000);
}

class RemindTask extends TimerTask {
    public void run() {
        textFeedback.setText("test");
        timer.cancel(); 
    }
}

}

在一个函数中(也在我的mainactivity中)我创建了一个计时器作为新的Reminder(5) 5秒钟后,应用程序崩溃 我没有看到什么是错的,因为我在像这样的普通java应用程序中这样做。

3 个答案:

答案 0 :(得分:1)

不确定您初始化textFeedback的位置。

textFeedback.setText("test");无法从计时器任务更新ui。计时器任务在非ui线程上运行。 Ui只能在ui线程上更新。

您的选项使用HandlerrunOnUiThread

注意runOnUiThread是Activity类的一种方法。需要活动上下文

更多信息

Android Thread for a timer

答案 1 :(得分:1)

感谢。

解决这个问题:

         new CountDownTimer(5000, 1000) {

             public void onTick(long millisUntilFinished) {
                 //textFeedback.setText("seconds remaining: " + millisUntilFinished / 1000);
             }

             public void onFinish() {
                 textFeedback.setText("");
             }
          }.start();

答案 2 :(得分:0)

当类Remainder is istatiate不知道var text Feedback时,因为你需要传递文本的所有者反馈