java - Android 客户端/服务器通信的最佳实践

标签 java android multithreading sockets client-server

在启动 Activity 中,我创建并调用线程:

new Thread (new Connect()).start();

Thread t = new Thread() {
    @Override
    public void run() {
        try {
            //check if connected!
            while (!Connect.logged) {//logged is boolean
                Thread.sleep(1000);
            }
         } catch (Exception e) {
            e.printStackTrace();
         }
    }
};
t.start();

在 Connect 类(实现 Runnable)中,我创建并打开一个套接字。除了 run 方法之外,我还有方法 sendMessage(String) 和 receiveMessage(),它们使用 BufferOutputStream 和 BufferInputStream 与服务器进行通信。

现在,我需要发送和接收来自其他 Activity 的消息。将这些方法设为静态是个好习惯吗?

所以我可以调用它们,例如 Connect.sendMessage("OK");

最佳答案

在 Java 中使方法静态的规则

没有硬性的、写得好的规则来决定何时使方法静态或不静态,但是很少有基于经验的观察,这不仅有助于使方法静态,而且还指导何时使用静态Java 中的方法。您应该考虑在 Java 中将方法设为静态:

1) 如果方法不修改对象的状态,或者不使用任何实例变量。

2)您想要调用方法而不创建该类的实例。

3) 如果一个方法仅适用于提供给它的参数,那么它就是静态的良好候选者。 public int Factorial(int number){},此方法仅对作为参数提供的数字进行操作。

4) 实用方法也是静态的良好候选者,例如StringUtils.isEmpty(String text),这是一个检查字符串是否为空的实用方法。

5) 如果方法的函数在类层次结构中保持静态,例如equals() 方法不适合静态化,因为每个类都可以重新定义相等性。

了解更多:http://javarevisited.blogspot.com/2013/07/when-to-make-method-static-in-java.html#ixzz48L2fehQq

关于java - Android 客户端/服务器通信的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37158416/

相关文章:

java - 当主线程仍在运行时,线程如何通知主线程

java - 仅在特定线程中在断点处停止

java - 使用 JSP EL 检查 Cookie 是否存在

Java获取调用main创建的线程

java - 是否可以在OSwor​​kflow中动态创建工作流?

java - Android 贪吃蛇游戏(如何添加音频)?

Android Button 单击转到另一个 xml 页面

android - 从 Python-Django 启动 Android 模拟器

java.lang.NullPointerException 使用 facebook android studio 登录

java - 不完整的@JoinColumns