第二次启动线程
问题描述:
thread = new Thread()
{
@Override
public void run() {
while(!requestedToExit)
{
SystemClock.sleep(3000);
Log.d("debug", "in");
}
}
};
因此,一个按钮有一个事件,每次我点击它,它开始线程(如果前一个线程不活着)。第二次启动线程
所以我尝试使用thread.start(),但它抛出线程已经开始。我尝试过.run(),没有任何反应,我每次点击按钮时也尝试过,并且可以再次运行它,创建一个新线程并启动它:没有任何结果。
有些想法?
使用Runnable接口:
r= new Runnable(){
public void run() {
while(!requestedToExit)
{
Log.d("debug", "in");
SystemClock.sleep(3000);
}
}
};
然后我在监听器使用方法:
thread = new Thread(injection);
thread.start();
但我只看到了第一次调试,他从来没有后进入它。
在此先感谢
答
从JavaDoc -
这是从来没有的法律,以启动一个线程不止一次。特别是,线程在完成执行后可能不会重新启动。
取而代之,使用java.lang.Runnable
并创建一个新线程以在必要时运行它。
你需要做的是:
Runnable r = new Runnable() {
public void run() {
....
}
};
然后,当你想要启动它:
Thread t = new Thread(r);
t.start();
你需要始终创建一个新的线程来运行一个可运行。
我编辑了我的第一篇文章。在此先感谢 PS:我想使用Thread和Runnable中的函数,.isAlive对我来说非常有用。 – Shinao 2012-04-26 12:02:43
我重新编辑了我的第一篇文章。我不使用线程t =新的线程(r),但t =新的线程(r),因为我在开始时定义它私人线程thread = new Thread();,否则我不知道我的线程isAlive时间,但我认为这不是问题,因为我使用新的线程()。感谢您的帮助 – Shinao 2012-04-26 13:08:51
上帝我迟到了,忘了设置requestedToExit在虚假...谢谢 – Shinao 2012-04-26 14:40:11