[英]sending a string to the server and receiving not updated response
我正在用Java編寫android的應用程序,服務器端也使用Java編寫。 通過插座進行連接。 要將字符串發送到服務器,我使用asyncTask,如下所示:
public static void send(String content) throws IOException {
mConnectionHandler.new AsyncSendToServer().execute(content);
}
private class AsyncSendToServer extends AsyncTask<String, Void, Void> {
@Override
protected Void doInBackground(String... params) {
out.println(params[0]);
return null;
}
}
現在,來自服務器的響應如下:
public static String receive() {
mConnectionHandler.new AsyncReceiveFromServer().execute();
return serverResponse;
}
private class AsyncReceiveFromServer extends AsyncTask<Void, Void, String> {
@Override
protected String doInBackground(Void... params) {
String result = null;
try {
result = in.readLine();
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
protected void onPostExecute(String result) {
serverResponse = result;
}
}
由於這些方法是異步的,因此serverResponse無法在receive()中獲得適當的值。 當我執行AsyncReceiveFromServer時,receive()返回serverResponse的值,然后在asyncTask中對其進行更新。 我該怎么做才能發送更新的serverResponse?
從AsyncSendToServer的onPostExecute執行AsyncReceiveFromServer。 這樣,您絕對可以確定發送已完成。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.