Java 再次启动一个线程
所以一个按钮得到了一个事件,每次我点击它,它就会启动线程(如果前一个线程不是活动的) 所以我尝试使用thread.start(),但它抛出的线程已经启动。我尝试了.run(),什么也没有发生,我也尝试了每次单击按钮,并且可以再次运行它,创建一个新线程并启动它:nothing 一些想法Java 再次启动一个线程,java,android,Java,Android,所以一个按钮得到了一个事件,每次我点击它,它就会启动线程(如果前一个线程不是活动的) 所以我尝试使用thread.start(),但它抛出的线程已经启动。我尝试了.run(),什么也没有发生,我也尝试了每次单击按钮,并且可以再次运行它,创建一个新线程并启动它:nothing 一些想法 使用Runnable: thread = new Thread() { @Override public void run() {
使用Runnable:
thread = new Thread()
{
@Override
public void run() {
while(!requestedToExit)
{
SystemClock.sleep(3000);
Log.d("debug", "in");
}
}
};
然后我在我的听众中使用:
r= new Runnable(){
public void run() {
while(!requestedToExit)
{
Log.d("debug", "in");
SystemClock.sleep(3000);
}
}
};
但我只是第一次看到调试,之后他再也没有进入调试
提前感谢来自-
多次启动线程是不合法的。特别是
线程一旦完成执行,就不能重新启动
相反,使用java.lang.Runnable
并在必要时创建一个新线程来运行它
您需要做的是:
thread = new Thread(injection);
thread.start();
然后,当您要启动它时:
Runnable r = new Runnable() {
public void run() {
....
}
};
您需要始终创建一个新线程来运行该线程。可以从-
多次启动线程是不合法的。特别是
线程一旦完成执行,就不能重新启动
相反,使用java.lang.Runnable
并在必要时创建一个新线程来运行它
您需要做的是:
thread = new Thread(injection);
thread.start();
然后,当您要启动它时:
Runnable r = new Runnable() {
public void run() {
....
}
};
您需要始终创建一个新线程来运行该线程。我编辑了我的第一篇文章。提前感谢PS:我想使用Thread和Runnable的函数,.isAlive对我来说非常有用。我重新编辑了我的第一篇文章。我不使用线程t=new Thread(r),而是使用线程t=new Thread(r),因为我在开始时定义了私有线程Thread=new Thread();,否则我不知道我的线程第一次是否是Live(),但我认为这不是问题所在,因为我使用了new thread()。感谢你的帮助上帝我是个弱智,忘了把requestedToExit设置为false。。。谢谢我编辑了我的第一篇文章。提前感谢PS:我想使用Thread和Runnable的函数,.isAlive对我来说非常有用。我重新编辑了我的第一篇文章。我不使用线程t=new Thread(r),而是使用线程t=new Thread(r),因为我在开始时定义了私有线程Thread=new Thread();,否则我不知道我的线程第一次是否是Live(),但我认为这不是问题所在,因为我使用了new thread()。感谢你的帮助上帝我是个弱智,忘了把requestedToExit设置为false。。。谢谢