如何区分由同一自定义接口方法返回的两个数据集

时间:2014-10-31 08:02:14

标签: java android android-asynctask

详细说明,我正在使用interface将AsyncTask中的hashmaps列表返回到我的Activity中。 AsyncTask在Activity本身中触发,结果在实现的接口方法中捕获。

// This triggers AsyincTask in onCreate method of the Activity
JSONparser.executeParser(url, Profile.this);

// OnPostExecute returns data through interface method
@Override
        protected void onPostExecute(String downloadedData) {
            super.onPostExecute(downloadedData);

            // If web service returned data
            if (!downloadedData.equals("")) {

                JSONObject jObject;

                try {
                    // Put data into JSON Object and pass it to parser
                    jObject = new JSONObject(downloadedData);
                    parsedData = ParseJSONData.parse(jObject);

                } catch (Exception e) {
                    Log.d("ParserException", e.toString());
                }

                asyncInterface.onTaskFinished(parsedData);

            }else{
                asyncInterface.onTaskFinished(null);
            }
        }

//In activity I catch data from implemented interface and set up ListView
@Override
    public void onTaskFinished(List<HashMap<String, String>> data) {
        // TODO Auto-generated method stub
        MyHelper.getNotifications(context, notifications, data);
    }

我的问题是,如果我要在我的Activity中触发两个AsyncTasks,我将如何区分此接口方法中返回的数据?

例如,如果我想从两个不同的Web服务获取数据:

// This triggers AsyincTask in onCreate method of the Activity
JSONparser.executeParser(url1, Profile.this);
JSONparser.executeParser(url2, Profile.this);

如何在界面方法中区分url1中的数据和url2中的数据?

@Override
public void onTaskFinished(List<HashMap<String, String>> data) {
// TODO Auto-generated method stub

}

2 个答案:

答案 0 :(得分:0)

也许你应该使用一些包装器来代替列表数据参数,它将包含你的列表数据和关于它的其他信息(例如url的哈希码)。

另请使用

"".equals(downloadedData)

而不是

downloadedData.equals("")

因为downloadedDatanull ...

答案 1 :(得分:0)

将AsyncTask传回你的监听器......

@Override
public void onTaskFinished(AsyncTask task, List<HashMap<String, String>> data) {

    if(task == myFirstTask) then ... 


    // TODO Auto-generated method stub
    MyHelper.getNotifications(context, notifications, data);
}