0

アプリをサーバーに接続したい。私が欲しいのはクライアントだけです。

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

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

しかし、アプリケーションはクラッシュするだけです。ボタンを押してこのアクティビティを開始しました。問題が何であるか知っていますか?

4

1 に答える 1

3

スレッドですべてのブロッキングプロセスを実行し、メインUIスレッドを解放する必要があります。次に例を示します。

protected void onCreate(Bundle savedInstanceState) {
    //...
    new Thread(){
        public run(){
            try {
                InetAddress serverAddr = InetAddress.getByName(serverIpAddress);
                socket = new Socket(serverAddr, REDIRECTED_SERVERPORT);
            } catch (UnknownHostException e1) {
                //... 
            } catch (IOException e1) {
                //... 
            }
        }
    }.start();
}
于 2013-03-22T11:16:29.010 に答える