簡體   English   中英

向服務器發送字符串並接收未更新的響應

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM