Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 再次启动一个线程_Java_Android - Fatal编程技术网

Java 再次启动一个线程

Java 再次启动一个线程,java,android,Java,Android,所以一个按钮得到了一个事件,每次我点击它,它就会启动线程(如果前一个线程不是活动的) 所以我尝试使用thread.start(),但它抛出的线程已经启动。我尝试了.run(),什么也没有发生,我也尝试了每次单击按钮,并且可以再次运行它,创建一个新线程并启动它:nothing 一些想法 使用Runnable: thread = new Thread() { @Override public void run() {

所以一个按钮得到了一个事件,每次我点击它,它就会启动线程(如果前一个线程不是活动的)

所以我尝试使用thread.start(),但它抛出的线程已经启动。我尝试了.run(),什么也没有发生,我也尝试了每次单击按钮,并且可以再次运行它,创建一个新线程并启动它:nothing

一些想法


使用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。。。谢谢