解析JSON时流畅的UI

时间:2013-06-19 19:29:55

标签: android json performance parsing

我有一个解析一些大JSON文件的应用程序。

解析是在自己拥有最低优先级的线程中完成的。然而,当我解析UI变得几乎完全没有反应时。

我正在使用Gson进行解析,我知道杰克逊可能会给我更好的结果。但是 - 当我在另一个线程中工作时,我仍然不明白为什么UI会变得迟钝。

也许我的内存不足?我不确定 - 我有没有办法看到它?

欢迎任何建议。

编辑:

    @Override
    public void onResponse(JSONArray response) {
        final JSONArray finalResponse = response;
        new Thread(new Runnable() {
            public void run() {
                Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
                feedParser.feedParser(finalResponse);
            }
        }).start();
    }

在feedParser(finalResponse)中,99%的时间用于解析响应,如下所示:

SubscriptionWrapper[] subscriptionWrappers = gson.fromJson(
            jsonArray.toString(), SubscriptionWrapper[].class);

EDIT2:改写之后使用AsynvTask代替。它表现得稍好但仍然非常迟钝。

private static class VolleyResultParser extends AsyncTask<JSONArray, Void, Void> {

    FeedParserWrapper feedParser = null;

    public VolleyResultParser(FeedParserWrapper feedParser) {
        this.feedParser = feedParser;
    }
     protected Void doInBackground(JSONArray... response) {
            Thread.currentThread().setPriority(Thread.MIN_PRIORITY);
            feedParser.feedParser(response[0]);
            return null;
     }
}

0 个答案:

没有答案