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

JY0*_*284 1 java multithreading android

我的部分代码如下:

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();
Run Code Online (Sandbox Code Playgroud)

这些代码只会在我关闭严格模式时运行.我已经阅读了有关使用AsyncTask来避免这种情况的文档.它说我不应该在主线程中进行I/O操作,但我想我已经创建了一个新的线.我的问题是,与主线程相比,这个新的Thread()不是一个不同的线程吗?

tyc*_*czj 5

你需要用.start()而不是.run()