Java 为什么在onCreate()中创建一个新线程来执行I/O仍然会导致错误?

Java 为什么在onCreate()中创建一个新线程来执行I/O仍然会导致错误?,java,android,multithreading,Java,Android,Multithreading,我的部分代码如下: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final NetDataHandler handler = new NetDataHandler(); marketList = (ListView)findViewById(R.id.

我的部分代码如下:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final NetDataHandler handler = new NetDataHandler();
    marketList = (ListView)findViewById(R.id.list);
    marketList.setAdapter(adapter);

    new Thread(new Runnable() {
        @Override
        public void run() {
            HTTPUtils.getJsonData(HTTPUtils.TARGET_URL, handler);
        }
    }).run();
这些代码只有在我关闭严格模式时才会运行。我已经阅读了有关使用AsyncTask来避免这种情况的文档。它说我不应该在主线程中执行I/O操作,但我认为我已经创建了一个新线程。 我的问题是,与主线程相比,这个新线程不是一个不同的线程吗?

您需要使用.start而不是.run

您需要使用.start而不是.run