Android多线程之java.lang.IllegalThreadStateException: Thread already started

       我们都知道,实现多线程有两种方式,继承Thread和实现Runnable接口。由于Android只能单继承,却可以实现多接口,所以在实际开发中后者用的相对较多.

但是最近在用实现runnable接口的时候,在一个按钮点击事件中启动线程,第一次点击ok,但是再次点击程序就会崩掉,log报异常java.lang.IllegalThreadStateException: Thread already started。查了下资料,发现实现该接口确实存在这个问题,不过解决方法也很容易。


new出一个Runnable

 Runnable r = new Runnable() {
                
                @Override
                public void run() {
                    // TODO Auto-generated method stub


                   //这里做耗时操作

                }
            };



然后启动线程的时候将这个Runnable传入thread。

比如 我的线程为 mThread ,那么

                                mThread = new Thread(r);
                                mThread.start();


这样就ok了。

你可能感兴趣的:(Android应用)