【发布时间】:2014-09-28 20:19:59
【问题描述】:
我正在尝试让计时器在单独的线程中运行。
我的 onCreate 函数之前有以下声明:
TimerTask scanTask;
Timer t = new Timer();
然后在 onCreate 中的代码如下:
Runnable runnable = new Runnable() {
@Override
public void run() {
scanTask = new TimerTask() {
@Override
public void run() {
System.out.println("timer test");
}
};
t.schedule(scanTask, 0, 5000);
CountDownTimer waitTimer;
waitTimer = new CountDownTimer(20000,300) {
@Override
public void onTick(long l) {
}
@Override
public void onFinish() {
t.cancel();
System.out.println("Timer stopped");
}
}.start();
}
};
Thread periodic_scan = new Thread(runnable);
periodic_scan.start();
但是,当我运行该应用程序时,它会崩溃并给我一个错误: java.lang.RuntimeException:无法在未调用 Looper.prepare() 的线程内创建处理程序
我不确定我是否完全理解为什么会发生此错误。它与UI线程有关吗?另外,我不确定我尝试实现这一点的方式是否正确。这是我第一次尝试在 Android 中处理线程。
【问题讨论】:
-
尝试输入 Looper.prepare();
标签: java android multithreading