Java android中的异步任务

Java android中的异步任务,java,android,android-asynctask,asyncsocket,Java,Android,Android Asynctask,Asyncsocket,我想对该任务的多个调用使用相同的套接字地址 我试图从不同的班级获得地址,但没有成功 请帮忙 我从不同班级打来的电话是: new ConnectToServer().execute(ip, "2000", "br1"); 我的任务代码是: public class ConnectToServer extends AsyncTask<String, Void, Void> { @Override protected Void doInBackground(String

我想对该任务的多个调用使用相同的套接字地址

我试图从不同的班级获得地址,但没有成功

请帮忙

我从不同班级打来的电话是:

new ConnectToServer().execute(ip, "2000", "br1");
我的任务代码是:

public class ConnectToServer extends AsyncTask<String, Void, Void> {

    @Override
    protected Void doInBackground(String... parms) {
        // TODO Auto-generated method stub
        try {

            Socket s = new Socket(parms[0], Integer.parseInt(parms[1]));
            // ******

            OutputStream os = s.getOutputStream();
            BufferedOutputStream out = new BufferedOutputStream(os);

            if (parms[2] == "br1") {
                out.write("rr1".getBytes());
                out.write('\n');
                out.flush();
            } else if (parms[2] == "br2") {

                out.write("rr2".getBytes());
                out.write('\n');
                out.flush();
            } else if (parms[2] == "br3") {
                out.write("rr3".getBytes());
                out.write('\n');
                out.flush();
            } else if (parms[2] == "br4") {
                out.write("rr4".getBytes());
                out.write('\n');
                out.flush();
            } else if (parms[2] == "bb1") {
                out.write("bb1".getBytes());
                out.write('\n');
                out.flush();
            } else if (parms[2] == "bb2") {
                out.write("bb2".getBytes());
                out.write('\n');
                out.flush();
            } else if (parms[2] == "bb3") {
                out.write("bb3".getBytes());
                out.write('\n');
                out.flush();
            } else if (parms[2] == "bb4") {
                out.write("bb4".getBytes());
                out.write('\n');
                out.flush();
            }

            // s.shutdownOutput();

        } catch (NumberFormatException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (UnknownHostException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }

}
公共类ConnectToServer扩展异步任务{
@凌驾
受保护的空doInBackground(字符串…参数){
//TODO自动生成的方法存根
试一试{
sockets=newsocket(parms[0],Integer.parseInt(parms[1]);
// ******
OutputStream os=s.getOutputStream();
BufferedOutputStream out=新的BufferedOutputStream(os);
如果(参数[2]=“br1”){
out.write(“rr1.getBytes());
out.write('\n');
out.flush();
}否则如果(参数[2]=“br2”){
out.write(“rr2.getBytes());
out.write('\n');
out.flush();
}否则如果(参数[2]=“br3”){
out.write(“rr3.getBytes());
out.write('\n');
out.flush();
}否则如果(参数[2]=“br4”){
out.write(“rr4.getBytes());
out.write('\n');
out.flush();
}否则如果(参数[2]=“bb1”){
out.write(“bb1.getBytes());
out.write('\n');
out.flush();
}否则如果(参数[2]=“bb2”){
out.write(“bb2.getBytes());
out.write('\n');
out.flush();
}否则如果(参数[2]=“bb3”){
out.write(“bb3.getBytes());
out.write('\n');
out.flush();
}否则如果(参数[2]=“bb4”){
out.write(“bb4.getBytes());
out.write('\n');
out.flush();
}
//s.关闭输出();
}捕获(数字格式){
//TODO自动生成的捕捉块
e、 printStackTrace();
}捕获(未知后异常e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
返回null;
}
}

您无法将java
String
s与
String==String
进行比较。您需要使用
String.equals(String)

请尝试以下代码:

        if (parms[2].equals("br1")) {
            out.write("rr1".getBytes());
            out.write('\n');
            out.flush();
        } else if (parms[2].equals("br2")) {

            out.write("rr2".getBytes());
            out.write('\n');
            out.flush();
        } else if (parms[2].equals("br3")) {
            out.write("rr3".getBytes());
            out.write('\n');
            out.flush();
        } else if (parms[2].equals("br4")) {
            out.write("rr4".getBytes());
            out.write('\n');
            out.flush();
        } else if (parms[2].equals("bb1")) {
            out.write("bb1".getBytes());
            out.write('\n');
            out.flush();
        } else if (parms[2].equals("bb2")) {
            out.write("bb2".getBytes());
            out.write('\n');
            out.flush();
        } else if (parms[2].equals("bb3")) {
            out.write("bb3".getBytes());
            out.write('\n');
            out.flush();
        } else if (parms[2].equals("bb4")) {
            out.write("bb4".getBytes());
            out.write('\n');
            out.flush();
        }

parms[2]=“br1”
。不好的。搜索如何在Java中比较字符串。我谈论的是套接字而不是字符串。请给出堆栈跟踪或更深入的解释,说明问题所在。对不起,我是初学者,,,当我调用这个类时(new ConnectToServer().execute(ip,“2000”,“br1”);)…它是create new socket,当我回忆起它的create new socket等等,我想在所有电话中使用相同的地址??正确的代码应该解决套接字s=***正确的***新套接字(ip,端口);