我有問題,我無法解決。我正在嘗試爲實驗製作一個接收和發送消息的Android客戶端(帶有多線程,因此我不必等待發送消息的服務器,反之亦然)以及爲Windows編寫的服務器幾乎與Android客戶端一樣,接收和發送消息(這裏還有多線程)。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在運行多次時似乎只會運行一次。如果消息每次都有所不同,那麼我不知道......那種非常奇怪的行爲。 –
我從服務器發送類似「嗨」的內容,在「你好」之後,我只得到了「嗨」Toast。如果我在一段時間內使用Log.i(true),我會在LogCat中同時獲得「hi」和「hello」。無法弄清楚問題所在。 – ontech7