2011-10-20 106 views
1

這裏是我的代碼插座,Android的

 TextView textStatus = (TextView) findViewById(R.id.editText1); 
    ServerSocket serverSocket = new ServerSocket(SERVERPORT); 
    . 
    . 
    Socket client = serverSocket.accept(); 
    . 
    . 
    textStatus.append("TEXT"); 
    client.close(); 

這使得Android應用程序強制關閉的一個樣本。如果我刪除textStatus.append,它會起作用。再次,如果我刪除Socket client = ...client.close(),它會在屏幕上顯示TEXT。

因此,套接字client = serverSocket.accept();以某種方式影響textStatus變量。

誰能告訴我什麼是錯的?

回答

1

textStatus可能爲null。檢查以確保R.id.editText1是您在XML文件中使用的實際ID。

此外,任何可能長時間運行的任務不應該在UI線程上完成。你的應用程序性能會很差。請參閱Painless Threading文章,並嘗試將您的服務器通信關閉到另一個線程。或者考慮使用IntentService代替。我更喜歡IntentService。