加入Thread会导致NetworkOnMainThreadException异常

时间:2013-08-07 08:46:37

标签: android service

我正在处理服务,我在onStartCommand中有以下代码:

try {
    Thread t = new Thread(new Runnable() {
        @Override
        public void run() {
            try {
                Networker.get("http://google.com/");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
    t.run();
    t.join();
} catch (InterruptedException e) {
    e.printStackTrace();
}

即使网络代码在另一个线程中运行,我的服务仍然与NetworkOnMainThreadException崩溃。等效的AsyncTask代码不会导致此错误。是因为加入吗?

我这样做是因为我只需要我的服务来运行单个请求然后退出,所以我想使用上面的代码并返回START_NON_STICKY以使服务再次快速关闭。我应该做其他事吗?

1 个答案:

答案 0 :(得分:2)

在线程上调用start()而不是run()来启动线程。

run()只会在当前主题中运行您的Runnable

相关问题