如何从 AsyncTask 类返回值 onPostExecute 方法



>我尝试使用onPostExecute方法中的字符串,但我必须为此过程编写接口或处理程序。我读了一些东西,但我不清楚。我的onPostExecute方法:

protected void onPostExecute(String result) {
            try {
                JSONArray jArray = new JSONArray(result);
                JSONObject json_data;
                for (int i = 0; i < jArray.length(); i++) {
                    json_data = jArray.getJSONObject(i);
                t = json_data.getString("name");

                 names.add(t);
              }

        } catch (JSONException e1) {
            e1.printStackTrace();
        } catch (ParseException e1) {
            e1.printStackTrace();
        }
        super.onPostExecute(result);
    }`

异步函数不能返回值,因为它们不像普通函数那样被调用。 它们不是由另一个函数触发,而是由事件处理程序触发。

在这种情况下,你需要定义一个承诺(使用延迟对象,https://github.com/CodeAndMagic/android-deferred-object),它基本上告诉函数你想要返回"我还不知道它会是什么,但当我得到它时我会告诉你。

最新更新