Мне нужно создать класс, который реализует серверный сокет, который ждет запроса на соединение от клиента (в данном случае веб-браузера). После этого я принял соединение, я хочу показать диалог с двумя кнопками для пользователя. Итак, на данный момент у меня есть класс, готовый к использованию для сокета сервера, и метод, который реализует диалоговое окно Alert. Как я могу использовать метод диалогового окна предупреждения внутри класса сокета сервера, чтобы показать сообщение с помощью двух кнопок? Вот класс сервера:Показать диалоговое окно оповещений, когда сокет сервера принимает соединение
UPDATE: я добавил код для создания Dialog оповещения после того, как сервер принял соединение
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();
}
}
}
Благодарности
Спасибо, это мне очень помогает и теперь работает правильно! – Hieicker