2012-02-29 48 views
0

我正在涉及連接到服務器的Android應用程序。即使在新線程中創建套接字(並使用異步任務),我也一直在獲取networkonmainthreadexceptions。 套接字從正常的java程序正常工作,IP在本地網絡上,並且ping工作正常。 電話是承上啓下的星系,Android版本4.0.2從非主線程Android網絡mainmainthreadexception

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

分享異步任務代碼 – Blackbelt 2012-02-29 15:22:44

+0

如何調用'doInBackground'?聽起來你仍然從主應用程序線程調用它。例如'task = new DBTask(); task.doInBackground();'。 – 2012-02-29 15:34:58

回答

0

嘗試從那裏您的AsyncTask被調用,並從裏面doInBackground的地方登出android.os.Process.myTid()。如果它們是相同的,那麼你的AsyncTask實際上並沒有進入線程池。

您可以在哪裏激活AsyncTask?

+0

固定。原來wifi沒有完全配置。仍然不知道爲什麼它拋出networkonmainthreadexception雖然... – user1178604 2012-02-29 15:46:09