有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Android 2.2 readUTF()socket问题

我正在尝试创建一个Java客户端-服务器程序,其中服务器运行在Windows PC上,客户端运行在Android 2.2手机上

连接正常。从手机向PC发送数据也可以。 仅仅在手机上接收数据就会导致程序崩溃

我使用DataInputStream和DataOutputStream通过socket进行读/写

    //Thread on the Phone
    public void run() {
    while (RUN) {

        if (socket != null && socket.isConnected()) {
            try {
                //Crash
                String text = dis.readUTF();
                myTextView.setText(text);

            } catch (IOException ex) {
                //ErrorHandling
            }

        }

    }
}

我想从服务器接收一个字符串,然后在文本视图中显示它。 有什么想法吗?我已经设置了此权限:

<uses-permission 安卓:name="安卓.permission.INTERNET" />

我还需要其他权限吗?谢谢


共 (2) 个答案

  1. # 2 楼答案

    如果不在UI线程中,则无法在UI上设置文本

    做这个

    加上:

    Runnable showmessage = new Runnable() { public void run() { myTextView.setText(membervariabletext); } };

    在readUTF()之后,从线程中调用“runOnUiThread(showmessage);”