Java 当服务器套接字接受连接时显示警报对话框

Java 当服务器套接字接受连接时显示警报对话框,java,android,sockets,android-dialog,Java,Android,Sockets,Android Dialog,我需要创建一个类,该类实现一个服务器套接字,该套接字等待来自客户端(在本例中为web浏览器)的连接请求。在我接受连接之后,我想向用户显示一个带有两个按钮的警报对话框。因此,目前,我已经准备好了用于服务器套接字的类,以及实现警报对话框的方法。如何在ServerSocket类中使用alert对话框方法来显示带有两个按钮的消息?以下是服务器类: 更新:在服务器接受连接后,我添加了创建警报对话框的代码 public class ServerThread extends AndroidApp2 imple

我需要创建一个类,该类实现一个服务器套接字,该套接字等待来自客户端(在本例中为web浏览器)的连接请求。在我接受连接之后,我想向用户显示一个带有两个按钮的警报对话框。因此,目前,我已经准备好了用于服务器套接字的类,以及实现警报对话框的方法。如何在ServerSocket类中使用alert对话框方法来显示带有两个按钮的消息?以下是服务器类:

更新:在服务器接受连接后,我添加了创建警报对话框的代码

public class ServerThread extends AndroidApp2 implements Runnable { 
    public void run() {
    try{
        if ( SERVERIP != null){ 
            handler.post(new Runnable(){ 
                @Override
                public void run(){
                    serverStatus.setText("Listening on IP: " + ip_address_conversion + ":" + SERVERPORT);                           
                }
            });
            serverSocket = new ServerSocket(SERVERPORT);
            while (true){
                Socket client = serverSocket.accept();
                handler.post(new Runnable(){
                    @Override
                    public void run(){
                        serverStatus.setText("Connected"); 
                    }
                });
                try{                            
                    AlertDialog.Builder connection_alert3 = new AlertDialog.Builder(this);
                            connection_alert3.setTitle("Connection Incoming");
                            connection_alert3.setMessage("bla bla boa");
                            connection_alert3.setCancelable(false);
                            connection_alert3.setPositiveButton("Yes", new DialogInterface.OnClickListener(){
                                public void onClick(DialogInterface dialog, int id) {

                                }
                            });
                            connection_alert3.setNegativeButton("No", new DialogInterface.OnClickListener(){
                                public void onClick(DialogInterface dialog, int id){

                                }
                            });
                            AlertDialog alert = connection_alert3.create();
                            alert.show(); 
                } catch (Exception e){
                    handler.post(new Runnable() {
                        @Override
                        public void run() {
                            serverStatus.setText("Oops. Connection interrupted. Please reconnect your phones."); 
                        }
                    });
                    e.printStackTrace();
                }
            }
        }else{
            handler.post(new Runnable(){
                @Override
                public void run(){
                    serverStatus.setText("Couldn't detect internet connection.");   }
            });
        }
    }catch (Exception e) {
        handler.post(new Runnable(){
            @Override
            public void run(){
                serverStatus.setText("Error");
            }
        });
        e.printStackTrace();
    }
  } 
}
谢谢

}


如果处理程序是在ui线程上创建的(我想是这样的),这将起作用,因为您正在使用它设置文本。

谢谢您的回答。我已经在我的活动类中添加了您的方法,并修复了参数的名称。所以我在服务器套接字类中调用了这个方法,但是什么也没发生。。。我遗漏了什么?参考这个:嗨Android28!我看到了你的链接,但我已经实现了警报对话框。我的问题是我不能在socket类上显示它。我遵循教程和@Pratik示例,但什么都没有。我必须在我的问题上添加剩余的代码吗?
public void showDialog(Activity activity, String title, CharSequence message)
{
 AlertDialog.Builder builder = new AlertDialog.Builder(activity);
 if (title != null)
 builder.setTitle(title);

 builder.setMessage(message);
 builder.setPositiveButton("OK", null);
 builder.setNegativeButton("Cancel", null);
 builder.show();
handler.post(new Runnable() {
            @Override
            public void run() {
                // create the dialog here
            }
});