哪里更好地解析AsyncTask类中的json字符串?

时间:2016-04-08 17:25:40

标签: android json parsing android-asynctask

我从网址获得 json 字符串。这个 json 是一个大数据,我必须parse他们并显示在 ListView

现在你认为我应该

1 Parse doInBackground()方法中并返回值

OR

2从 onPostExecute()中的 doInBackground()返回 Json 字符串而不进行任何更改解析?

  

我在 doInBackground():在此方法中解析 Json 字符串并从 Json 字符串和返回值中获取字符串值。这项工作很好但是当我在 OnPostExecute()parse Json 字符串时,我无法获得任何内容

2 个答案:

答案 0 :(得分:2)

您必须Parse JSON doInBackground(),否则您将面临NetworkOnMainThreadException。通常AsyncTask的行为是

  1. onPreExecute()您会向用户显示一些内容,以便了解正在发生/正在加载的内容。
  2. doInBackground()执行您的网络通话并获取/发送数据
  3. onPostExecute()您在应用的小部件中显示数据。
  4. 希望它有所帮助!!!

答案 1 :(得分:1)

在我看来,不需要在UI-Thread中运行的所有内容都不应该在UI-Thread中运行。 所以我建议在doInBackground()方法中进行解析。

如果从REST-API收到要解析的Json,请考虑使用Retrofit library。这将删除大量的样板代码:)