2013-03-22 80 views
0

我想讓我的應用連接到服務器。我只想要客戶。Android套接字應用崩潰

protected void onCreate(Bundle savedInstanceState) { 
    //... 
    try { 
      InetAddress serverAddr = InetAddress.getByName(serverIpAddress); 
      socket = new Socket(serverAddr, REDIRECTED_SERVERPORT); 

    } catch (UnknownHostException e1) { 
     //... 
    } catch (IOException e1) { 
     //... 
    } 
} 

但應用程序只是崩潰。我按下按鈕開始了這個活動。 你知道這個問題可能是什麼嗎?

+2

使用線程或的AsyncTask在其他線程,而不是主UI線程 – 2013-03-22 11:12:40

+1

執行網絡操作旁邊那麼@ρяσѕρєяK是正確的,_please_添加一些日誌信息到你有的下一個問題,或者更好,只是讀它! – WarrenFaith 2013-03-22 11:14:26

+0

第一條評論可能是正確的,但是另外你也可以從權限中獲得異常。要找到像這樣的問題,請參閱eclipse中的DDMS選項卡並查看堆棧跟蹤(然後可能將其發佈到此處)。 – 2013-03-22 11:15:32

回答

3

你需要在一個線程中執行所有的阻塞進程,並釋放主UI線程,例如:

​​3210
+1

非常感謝。他們在http://developer.android.com/reference/android/os/AsyncTask.html上說你不應該使用異步任務(我想每10秒發送一次地理跟蹤數據或者我的服務器) – jasdefer 2013-03-25 10:20:49

+0

你需要實現一個Thread類,上面的解決方案包含一個匿名類實現Thread類。請你接受答案非常感謝。 – 2013-03-25 10:59:54