来自非主线程的Android networkonmainthreadexception

时间:2012-02-29 15:20:40

标签: java android sockets networking

我正在开发一个涉及连接服务器的Android应用程序。即使在新线程中创建套接字(并使用异步任务),我也一直在获得networkonmainthreadexceptions。 套接字在普通的java程序中工作正常,IP在本地网络上,并且ping可以正常工作。 手机是nexus galaxy,android 4.0.2版

package uk.ac.cam.echo.app;

import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;

import android.os.AsyncTask;


public class DBTask extends AsyncTask<Void,Void,Void>{

    protected Void doInBackground(Void... params) {
        try {
            Socket s = new Socket("192.168.15.98",44444);
        } catch (UnknownHostException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
}

1 个答案:

答案 0 :(得分:0)

尝试从调用AsyncTask的位置和android.os.Process.myTid()内部注销doInBackground。如果它们是相同的,那么你的AsyncTask实际上并没有进入线程池。

您是否可以提供激活AsyncTask的代码?