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