2012-02-29 4 views
0

Я работаю над Android-приложением, которое связано с подключением к серверу. Я получаю networkonmainthreadexceptions, даже при создании сокета в новом потоке (и использовании Async Task). Сокет отлично работает с обычной программой Java, IP находится в локальной сети, а pinging работает нормально. Телефонная связь галактика, андроид версия 4.0.2Android networkonmainthreadexception from non main thread

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

share async task code – Blackbelt

+0

Как вы называете 'doInBackground'? Похоже, вы все еще вызываете его из основного потока приложений. например 'task = new DBTask(); task.doInBackground(); '. –

ответ

0

Попробуйте выйти android.os.Process.myTid() от места, где ваш AsyncTask называется и изнутри doInBackground. Если они одинаковы, то ваш AsyncTask фактически не переходит в threadpool.

Можете ли вы указать код, в котором вы активируете AsyncTask?

+0

Исправлено. Оказывается, Wi-Fi не настроен полностью. Все еще не уверен, почему он бросает networkonmainthreadexception, хотя ... – user1178604