0

我的活动代码:

public String getValue(JSONObject data) {
    String value;
    socket.emit("request", data, new Ack() {
        @Override
        public void call(Object... args) {
            value = (String) args[1]; // how to wait for this value?
        });

    return value;
}

我如何等待value来自 socket.io 回调的那个?

4

1 回答 1

0

尝试这个

public class  getvalue extends AsyncTask<JSONObject,Void,String>{


          @Override
          protected String doInBackground(JSONObject... jsonObjects) {
              String value;
              socket.emit("request", jsonObjects, new Ack() {
                  @Override
                  public void call(Object... args) {
                      value = (String) args[1]; // how to wait for this value?
                  }
          });
          return value;
      }
          protected void onPostExecute(String result) {
              //result is the final String;
          }
      }

然后转到您要使用此功能的活动并尝试以下操作:

 getvalue a=new getvalue();
            getvalue.execute(data);

这是一些有用的链接 https://developer.android.com/reference/android/os/AsyncTask

AsyncTask Android 示例 有望工作

于 2020-05-20T19:29:22.200 回答