java - 为什么在 onCreate() 中创建一个新的 Thread 来做 I/O 仍然会出错?

标签 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.list);
    marketList.setAdapter(adapter);

    new Thread(new Runnable() {
        @Override
        public void run() {
            HTTPUtils.getJsonData(HTTPUtils.TARGET_URL, handler);
        }
    }).run();

这些代码只会在我关闭严格模式时运行。我已经阅读了关于使用 AsyncTask 来避免这种情况的文档。它说我不应该在 < strong>ma​​in thread,但我想我创建了一个新线程。 我的问题是,与 ma​​in thread 相比,这个 new Thread() 不是一个不同的线程吗?

最佳答案

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

关于java - 为什么在 onCreate() 中创建一个新的 Thread 来做 I/O 仍然会出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29564070/

相关文章:

android - 无法使用 avdmanager 创建 Travis CI android 模拟器

java - 如何为不同的eclipse实例分配不同的堆大小?

java - J2ME 中任意精度小数的替代方法

java - android 将文件保存到内部数据文件夹中

ios - iOS在后台使用多个对象执行任务

iphone - iPhone相当于Android的服务

c# - 单例和实例锁定属性

java - 多线程文件处理和数据库批量插入

java - 用 c 编写一个函数,其中包含以下语句序列 [不会编译]

android - TextInputLayout,setError增加高度