Java 为什么在AsyncTask'中调用新线程不起作用;s doInbackground()?

Java 为什么在AsyncTask'中调用新线程不起作用;s doInbackground()?,java,android,multithreading,android-asynctask,dalvik,Java,Android,Multithreading,Android Asynctask,Dalvik,虽然这将起作用: new Thread(new Classimplementingrunnable(stuff, dostuff()).start(); 这不会: new Thread(){ public void run(){ Log.i("tag", "I am inside thread"); dostuff(); } }; 没有错误发生,它只会忽略它,并且不会启动单独的线程,因此“我在线程内”不会显示。您需要在线程上调用start()方

虽然这将起作用:

new Thread(new Classimplementingrunnable(stuff, dostuff()).start();
这不会:

new Thread(){
    public void run(){
        Log.i("tag", "I am inside thread");
        dostuff();
    }
};

没有错误发生,它只会忽略它,并且不会启动单独的线程,因此“我在线程内”不会显示。

您需要在线程上调用
start()
方法以使其运行

new Thread(){
    @Override
    public void run(){
        Log.i("tag", "I am inside thread");
        dostuff();
    }
}.start();

在后一种情况下也调用
start()
。但是,我想,最好总是传递一个可运行的线程,而不是重载线程。run()。你完全正确,我很惭愧我看不到它,我想我太累了,我对这个问题的思考比我应该的更深入。