pad*_*apa 5 java multithreading android runnable
考虑这个类,AnimationThread:
class AnimationThread implements Runnable {
public void pause() {
doAnimation = false;
}
public void doStart(){
doAnimation = true;
}
@Override
public void run() {
// TODO Auto-generated method stub
if (doAnimation) {
//my code
}
try {
Thread.sleep(500);
}
catch (InterruptedException e) {
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在我开始onCreate一个活动的这个线程(只显示粗略的代码):
AnimationThread animRunnable = new AnimationThread();
animationThread = new Thread(animRunnable);
animationThread.start();
Run Code Online (Sandbox Code Playgroud)
但是run()只被调用一次(我追踪了一个日志来确认).我只是想知道,当我启动线程时,为什么run()不会在500次睡眠时反复调用.它被称为一次.
Thi*_*ilo 12
这就是应该如何.
线程通过执行其run方法(仅一次)来运行.之后,它被认为是完成/死亡/完成/完成.
如果你想循环,你必须自己(在run方法内),或使用一些ExecutorService重复调用Runnable.