2014-09-29 52 views
-2

我的Json服务有2700条记录,我想在我的应用程序中显示这些记录。 当我解析数据需要8分钟解析。所以我的应用程序变得不响应。如何在Android中使用ANR来处理大量数据?

如何分析分段明智的数据?

请给我建议的最佳方式。

问候, Sravanya

+1

不要在后台线程的工作。 – CommonsWare 2014-09-29 13:38:01

+1

使用AsyncTask。有很多关闭UI线程的运行操作示例。 – Booger 2014-09-29 13:38:32

+0

你显然有一个设计问题:通过互联网获取2700条记录对于数据使用和电池寿命来说非常糟糕,向用户显示2700条记录是UX的噩梦。 personne3000建议在你需要时只提取你需要的内容,如果我是你,我会遵循这个建议,显然2.7k记录不是你需要在移动应用上显示的内容。 – 2Dee 2014-09-29 13:57:33

回答

0

使用AsyncTask这会让你过程中使用一个单独的线程的主界面中的数据。处理完成后,您可以触发广播侦听器或使用onPostExecute更新UI的结果。

8分钟的时间很长,虽然,考虑是否有可能减少请求的数据的大小。

+1

没有,一个的AsyncTask可能是不适合8分钟的操作是正确的选择,除非它被赋予了自己的遗嘱执行人不阻止别人。 – 2014-09-29 13:47:07

2

IntentService将适应这种长计算。 8分钟。对于AsyncTask来说不是一个可接受的持续时间,因为用户/ Android系统在完成处理之前很可能会杀死您的应用程序。因此使用外部服务。

但是你绝对在这里做错了事:抓取2700条记录不是一个好主意(太多的网络使用),解析它们也不是如果需要这么多时间(太多的电池使用)。您必须将所提取的内容限制为仅需要的数据,也可以使用多个请求在需要时获取所需的数据。