Как ускорить разбор RSS и парсера RSS - PullRequest
0 голосов
/ 27 августа 2011

Я написал парсер rss для своего приложения подкаста.Если я выполняю синтаксический анализ RSS-канала с различными подкастами и показываю результат в ListView, моему синтаксическому анализатору потребуется около 1-2 секунд для анализа всего канала.

Однако, если я хочу включитьминиатюра каждого подкаста в моем ListView, мне нужно сначала загрузить миниатюру и создать растровое изображение с BitmapFactory, а затем я могу сохранить растровое изображение в ImageView.

К сожалению, это удлиняет мое время выполнения с 1-2 секунд до 8-10 секунд.

Вот так я хватаю эскиз.Есть ли лучший (и более быстрый) метод для достижения того, что я хочу сделать, и если он есть, как я могу его достичь?

Заранее спасибо.

...
else if (name.equalsIgnoreCase(THUMBNAIL)) {
    HttpGet get = new HttpGet(parser.nextText());
    if (get != null && get.getURI().toString().length()>1) {
        HttpClient client = new DefaultHttpClient();
        HttpResponse response = client.execute(get);
        if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
            HttpEntity entity = response.getEntity();
            if (entity != null) {
                byte[] bb = EntityUtils.toByteArray(entity);
                currentItem.setBitmap(BitmapFactory.decodeByteArray(bb, 0, bb.length));
            }
     }
}

1 Ответ

1 голос
/ 27 августа 2011

Вы должны использовать отдельный поток для загрузки растровых изображений.Это называется отложенной загрузкой.Смотрите мой учебник: http://negativeprobability.blogspot.com/2011/08/lazy-loading-of-images-in-listview.html

или ответы на этот вопрос: Ленивая загрузка изображений в ListView

...