我从网址获得 json 字符串。这个 json 是一个大数据,我必须parse
他们并显示在 ListView 。
现在你认为我应该
1 Parse
在 doInBackground()方法中并返回值
OR
2从 onPostExecute()中的 doInBackground()返回 Json 字符串而不进行任何更改解析?
我在 doInBackground():在此方法中解析 Json 字符串并从 Json 字符串和返回值中获取字符串值。这项工作很好但是当我在 OnPostExecute()中
parse
Json 字符串时,我无法获得任何内容
答案 0 :(得分:2)
您必须Parse
JSON
doInBackground()
,否则您将面临NetworkOnMainThreadException
。通常AsyncTask
的行为是
onPreExecute()
您会向用户显示一些内容,以便了解正在发生/正在加载的内容。doInBackground()
执行您的网络通话并获取/发送数据onPostExecute()
您在应用的小部件中显示数据。希望它有所帮助!!!
答案 1 :(得分:1)
在我看来,不需要在UI-Thread中运行的所有内容都不应该在UI-Thread中运行。
所以我建议在doInBackground()
方法中进行解析。
如果从REST-API收到要解析的Json,请考虑使用Retrofit library。这将删除大量的样板代码:)