0

アプリがサーバーからのテキストの受信を停止して切断されたことを示すために必要なものは、切断されたことを示すボタンを設定する必要があります。すべてのコードを投稿しなかっただけです)

Thread.sleep(10);
                        counter++;
                        if (counter >= 100)
                        {
                            Log.d("ClientActivity","send S");
                            counter = 0;
                            out.println("S");
                            A2MCString = in.readLine();
                            Log.d("ClientActivity","got " + A2MCString);
                            if (A2MCString == null) 
                                {
                                connected = false;
                                Log.d("ClientActivity","Closed1");
                                Connect.setText("Connect");
                                Log.d("ClientActivity","Closed2");
                                Connect.setBackgroundResource(R.drawable.contect_button);
                                Log.d("ClientActivity","Closed3");
                                DeBug.setText("Disconnected from " + serverIpAddress);
                                Log.d("ClientActivity","Closed4");
                                }

接続を「Connect」に設定しようとすると、アプリがクラッシュします logCat エラーは「android.view.ViewRoot$CalledFromWrongThreadException」です。

4

1 に答える 1

1

runOnUiThread またはハンドラを使用して、スレッドから UI を変更します。この行がエラーの原因だと思います。

Connect.setBackgroundResource(R.drawable.contect_button);

このようにスレッドのrunOnUiThreadに入れます

       runOnUiThread(new Runnable() {
                     public void run() {

                        Connect.setBackgroundResource(R.drawable.contect_button);
                    }
                });
于 2012-04-29T18:01:05.903 に答える