我正在开发一个涉及连接服务器的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;
}
}
答案 0 :(得分:0)
尝试从调用AsyncTask的位置和android.os.Process.myTid()
内部注销doInBackground
。如果它们是相同的,那么你的AsyncTask实际上并没有进入线程池。
您是否可以提供激活AsyncTask的代码?