2013-03-22 40 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