【问题标题】:Why calling a new thread will not work in AsyncTask's doInbackground()?为什么在 AsyncTask 的 doInbackground() 中调用新线程不起作用?
【发布时间】:2012-01-10 21:52:02
【问题描述】:

虽然这会起作用:

new Thread(new Classimplementingrunnable(stuff, dostuff()).start();

这不会:

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

没有错误发生,它会忽略它,它不会启动一个单独的线程,所以“我在线程内”不会显示。

【问题讨论】:

  • 在后一种情况下也调用start()。但我想,最好总是传递 Thread 一个 Runnable 而不是重载 Thread.run()。

标签: java android multithreading android-asynctask dalvik


【解决方案1】:

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

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

【讨论】:

  • 你说的完全正确,我很惭愧我看不到它,我想我太累了,我对这个问题的思考比我应该的更深入。
猜你喜欢
  • 2013-09-24
  • 1970-01-01
  • 1970-01-01
  • 2020-07-25
  • 1970-01-01
  • 2015-11-08
  • 2013-04-02
  • 2016-01-29
  • 2018-04-16
相关资源
最近更新 更多