У меня проблема, и я не могу решить. Я пытаюсь сделать только для экспериментов клиент Android, который принимает и отправляет сообщения (с многопоточным, поэтому мне не нужно ждать сервер, который отправляет сообщение, или наоборот), и сервер, написанный для Windows, который делает почти то же самое, что и в Android Client, получать и отправлять сообщения (w/multithread также здесь).Toast.makeText вызывается только один раз
final Thread t = new Thread(new Runnable() {
@Override
public void run() {
Looper.prepare();
try {
in_server = new BufferedReader(new InputStreamReader(client.getInputStream())); //receive from server
//Log.i("Message from server", in_server.readLine());
Toast.makeText(MainActivity.this, in_server.readLine(), Toast.LENGTH_SHORT).show();
} catch (IOException e) {
Toast.makeText(MainActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
}
Looper.loop();
}
});
Если я пишу какое-то время (правда) вместо двух петлевателей и я использую «Log.i», я получаю все сообщения, отправленные с сервера, клиента и работы сервера отлично с этим. Но если я удалю «Log.i», и я использую «Toast.makeText», и я помещаю два Loopers, как и код выше, я получаю первое сообщение, которое я отправляю с сервера, остальные не принимаются. Я не знаю, как решить эту проблему.
ПОЖАЛУЙСТА, не будьте грубыми, я совершенно новый на Java, я просто делаю несколько тестов, но я просто потерял больше часа для этого.
Это может показаться глупым, но всегда ли это сообщение? Если это так, то Toast появится только один раз, когда он на самом деле работает много раз. Если сообщение разное каждый раз, то я не знаю ... это очень странное поведение. –
Я отправил с сервера что-то вроде «привет», а после «привет» я получил только «привет» как тост. Если я использую Log.i через некоторое время (правда), я получаю как «привет», так и «привет» на LogCat. Не могу понять проблему. – ontech7