почему в этом коде не работает? контроль, если заявление обойденасообщение из фонового потока android
@Override
public void run() {
try {
Log.d("UDP", "S: Connecting...");
// CREO ED INIZIALIZZO IL SOCKET UDP
DatagramSocket socket = new DatagramSocket(null);
socket.setReuseAddress(true);
socket.bind(new InetSocketAddress(SERVERIP, SERVERPORT));
//DEFINISCO LA GRANDEZZA DEL BUFFER IN RICEZIONE
byte[] buf = new byte[64];
//CREO ED INIZIALIZZO IL PACCHETTO
DatagramPacket packet = new DatagramPacket(buf, buf.length);
Log.d("UDP", "S: Ricezione...");
IL SERVER SI METTE IN "RICEZIONE" DEL PACCHETTO
socket.receive(packet);
Log.d("UDP", "S: Ricevuto: " + new String(buf, 0, packet.getLength()) + "'");
Log.d("UDP", "S: Ok.");
String risultato= new String(buf, 0, packet.getLength());
System.err.println(risultato);
if(risultato=="COMANDO RICEVUTO CORRETTAMENTE"){
// Showing Alert Message
alertDialog.show();
System.err.println("ALERT DIALOG");
}
} catch (Exception e) {
Log.e("UDP", "S: Error", e);
}
}
Перевести на английском языке. Необходимое количество строк должно сравниваться. Использование == будет сравнивать ссылки на строки – Blackbelt
becausse, вы не можете получить доступ к пользовательскому интерфейсу из потока, отличного от пользовательского интерфейса. Читайте об AsyncTask и, возможно, об этом тоже - http://stackoverflow.com/help/how-to-ask – mihail
Согласовано с @mihail. Лучше использовать AsyncTask, который удобен. –