簡體   English   中英

如何從AsyncTask類的onPostExecute方法返回值?

[英]How can i return value from AsyncTask class onPostExecute method?

我嘗試使用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);
    }`

異步函數不能返回值,因為它們不像普通函數那樣被調用。 而不是由另一個函數觸發,而是由事件處理程序觸發。

在這種情況下,您需要定義一個promise(使用一個延遲的對象, https://github.com/CodeAndMagic/android-deferred-object ),它基本上告訴您要返回的函數“我還不知道什么會的,但是我會告訴你的。”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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