gpt4 book ai didi

java - android AysncTask doInbackground

转载 作者:行者123 更新时间:2023-12-02 09:19:42 25 4
gpt4 key购买 nike

我是android新手,我正在尝试在android中实现socket,它是一个简单的客户端服务器应用程序。我创建了 2 个按钮(“连接”、“断开连接”),并使用 AysncTask doInBackground 我正在连接到服务器并与服务器断开连接,但它正在用于连接仅当我尝试断开应用程序关闭时,不幸的是。下面是我的 mainactivity 代码。感谢您的帮助

package com.example.sockettest;

import androidx.appcompat.app.AppCompatActivity;

import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import java.io.*;
import java.util.*;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.Socket;
import java.net.UnknownHostException;
import java.lang.String;
class conn extends AsyncTask<String, Void, Void>{


Socket operator_socket;
@Override
protected Void doInBackground(String... voids) {
String str;
str = voids[0];
if (str.equals("conn")) {
try {
operator_socket = new Socket("192.168.0.103", 6666);

}catch (UnsupportedEncodingException e) { e.printStackTrace(); }
catch (UnknownHostException e) { e.printStackTrace(); }
catch (IOException e) { e.printStackTrace(); }
} else if (str.equals("CC")){
try {
operator_socket.getOutputStream().write("EX".getBytes("US-ASCII"));
operator_socket.close();
} catch (UnsupportedEncodingException e) { e.printStackTrace(); }
catch (UnknownHostException e) { e.printStackTrace(); }
catch (IOException e) { e.printStackTrace(); }
} else {

}
return null;
}
}

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
conn new_conn = new conn();
public void connect_operator(View v){
new_conn.execute("conn");
}
public void close_conn(View v){ new_conn.execute("CC"); }
}

最佳答案

您只能对 AsyncTask 的一个实例调用一次执行。 new_conn 仅初始化一次。现在,如果您尝试每次调用execute时都创建一个新对象,则将无法使用operator_socket Socket变量作为AsyncTask类的成员变量。在 AsyncTask 的单个实例上多次调用执行时出现异常

Read these docs

关于java - android AysncTask doInbackground,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58771019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com