在 Android Studio 中后台运行 Sockets 的方法与常规方法相同。以下是一个示例代码,可以使用后台线程在 Android 应用程序中运行 Sockets:
private class SocketThread extends Thread {
private Socket socket;
private String message;
public SocketThread(Socket socket, String message) {
this.socket = socket;
this.message = message;
}
@Override
public void run() {
try {
PrintWriter out = new PrintWriter(socket.getOutputStream());
out.println(message);
out.flush();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
private void sendSocketDataInBackground(final String dataToSend) {
new Thread(new Runnable() {
@Override
public void run() {
try {
Socket socket = new Socket("localhost", 8080);
SocketThread thread = new SocketThread(socket, dataToSend);
thread.start();
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
在此示例中,我们创建了一个名为 SocketThread
的类来处理数据发送。该类继承自 Thread
类并实现了 run()
方法,用于将数据发送到 Socket。
然后,我们创建了一个名为 sendSocketDataInBackground()
的方法,该方法接受我们要发送到 Socket 的数据并在新的后台线程中启动 SocketThread
。
可以在 Android 应用程序的任何位置调用 sendSocketDataInBackground()
方法来发送数据。这使我们的应用程序在后台运行 Sockets,而不会中断用户界面的交互。