【问题标题】:Android development communicate a device with a serverAndroid 开发将设备与服务器通信
【发布时间】:2014-06-12 01:28:33
【问题描述】:

我有一个在 Amazon ec2 上运行的服务器,它监听一个套接字并打印客户端发送的消息(“hello world”)——这是一个活动(android 应用程序)。

我正在尝试在函数中将消息从活动发送到服务器,例如:单击按钮后向服务器发送消息,表明单击了按钮。我创建了一个 connectionHandler 类,它扩展了一个线程并处理与服务器的连接并写入“hello world”消息。我想创建一个名为“send”的函数,它接收一个字符串,一个活动可以调用它并将消息传递给服务器。

我的connectionHandler是一个线程,所以当我启动它时,它只是执行run()函数,完成后我无法调用其他函数发送消息。

我希望我的问题很清楚, 谢谢,伊泰。

【问题讨论】:

    标签: java android sockets amazon-ec2 communication


    【解决方案1】:

    使用线程调用从 android 设备连接到服务器是一种非常错误的方法。 您应该使用 Asynctask 或名为 volley 的库,它可以让您的工作更轻松。

    使用 Asynctask 的参考链接:http://developer.android.com/training/basics/network-ops/connecting.html

    使用 Volley 的参考链接:http://www.michenux.net/android-volley-and-gson-tutorial-797.html

    【讨论】:

    • 但是我不想在线程中做任何UI动作,所以使用AsyncTask没有任何意义。我想随时从任何活动向线程发送消息,线程会将消息发送到服务器。
    • 但是每次你向服务器发送消息时,都会创建一个新的线程实例,这可能会导致内存泄漏。您必须为此创建线程执行器池,或者您可以使用 AsyncTask 自行管理它
    • 那么我应该为每个我想写的任务创建一个 AsyncTask 类 吗?比如发送消息、连接服务器、接收响应等。
    • 发送消息、连接服务器和获取响应可以做成单个任务,只需要一个 asyncTask 类就可以实现。
    猜你喜欢
    • 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
    相关资源
    最近更新 更多