簡體   English   中英

我需要在AsyncTask執行中傳遞變量,但無法弄清楚該怎么做

[英]I need to pass a variable in AsyncTask execute but can't figure out how to do it

我有一個AsyncTask,從我可以知道我傳遞的eventId錯誤,因為在日志中它顯示為“ Ljava.lang.String; @ 423e4370”

AsyncTask是:

    private class CallCategoryList extends AsyncTask<String, Void, String> {

        protected String doInBackground(String... eventId) {
            return readCategoryJSONFeed("http://webservice/service/category_list.php",  eventId.toString());
        }
...
}

我稱其為:

new CallCategoryList().execute(fv);

fv是通過調用從類返回它的函數獲得的

public String getEventByName(List<Event> eventList, String eventName) {
    for (Event event : eventList) {
        if (event.getEventName().equals(eventName)) {
            return event.getId();
        }
    }
    return null;
}

這方面的其他問題建議創建另一個類來保存變量。 有沒有簡單的方法可以通過execute傳遞此變量?

結構“ String ... eventId”只是“ String [] eventId”的快捷方式。 因此,您應該使用eventId [0]或Arrays.toString(eventId)或適用於您的邏輯的東西。

在您的情況下,使用單個String參數進行調用:

new CallCategoryList().execute(fv);

與靜默數組創建相同:

new CallCategoryList().execute(new String[] { fv });

嘗試在Google上搜索“ java vararg”或查看官方文檔

暫無
暫無

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

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