【问题标题】:Android studio TCPClient can't send dataAndroid studio TCPClient 无法发送数据
【发布时间】:2016-03-13 06:34:21
【问题描述】:

我制作了一个需要向手机发送数据的 TCP/IP 应用。当我将发送功能与按钮或任何异步任务相关联时,发送功能工作得很好,但是当我尝试在创建活动时发送一封信(在onCreate 方法中),它就是不起作用。手机什么也收不到。发送代码如下:

if (mTcpClient != null) {
    mTcpClient.sendMessage("m");
}

现在是 sendMessage 中的内容:

public void sendMessage(String message){
    if (out != null && !out.checkError()) {
        out.println(message);
        out.flush();
    }
}

当我将其复制粘贴到按钮 (onclicklistener) 或异步任务中时,完全相同的代码会起作用。可能是什么问题?

【问题讨论】:

  • 该代码仅适用于 AsyncTask 或线程。此外,您没有解释如果失败会发生什么。请从您的帖子中删除 Android Studio。与此无关。
  • 那么我应该怎么做才能让它在 onCreate 中工作?失败时什么都不会发生。活动开始时没有问题,但没有发送信件。我在android studio中制作应用程序,因此是标签。

标签: java android sockets printwriter


【解决方案1】:

如果检测到错误,您的代码将不执行任何操作,但您从不报告错误。

一般来说,您不应该在网络上使用PrintWriter,因为它会吞下您需要了解的异常。使用BufferedWriter

【讨论】:

  • 对不起,我是 java 新手,不懂。使它成为缓冲写入器是否使它能够通过 onCreate 发送数据?我使用单独的 tcp 客户端类,然后通过在活动中创建的对象访问它。将 printwriter 更改为 bufferedwriter 会产生很多未处理的异常错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多