3

我有一个 AsyncTask ,它返回一个包含 2 个元素的地图。我是这样做的:

        Map<String, ArrayList<String>> result = new HashMap<String, ArrayList<String>>();
        result.put("usernames", usernames);
        result.put("messages", messages);

    return result;

现在我在另一个 Activity 中调用这个 Async:

new ReadChat().execute(response);

如何从异步任务(来自doInBackground())获取其他活动中返回的数据?

4

2 回答 2

0

您需要将ReadChat实例保存在某处。然后,在里面设置值ReadChat,等到它完成,然后读回这些值。

于 2013-04-26T14:44:07.707 回答
0

如何从 AsyncTask 获取此其他 Activity 中返回的数据?

起初我认为你的问题不是很清楚。这取决于“你想用这些数据做什么”。AsyncTask 指定了三个我们可以说是“主要”方法:

  • onPreExecute() - 在任务开始之前调用
  • doInBackground() -在后台“默默地”做一些工作
  • onPostExecute() - 在 doInBackground() 完成后调用

因此,如果您的doInBackground()方法返回Map<String, ArrayList<String>>,您可以在将其作为参数 eq 的 onPostExecute() 中使用它:

@Override
public void onPostExecute(Map<String, ArrayList<String>> result) {
   // do some stuff
}

在这里你可以对结果做任何你想做的事情,例如用这些数据更新你的数据,用orUI持久化数据,进行一些下一个计算等等。SharedPreferencesSQLite

于 2013-04-26T15:47:32.950 回答