android - 我应该启动一个线程来解析一些 xml 吗?

标签 android xml multithreading parsing handler

我是 android 开发的新手,但我正在尝试制作一个 xml 解析器。我一直在使用 android.sax 库,遵循一些教程,效果很好。 让我怀疑的一件事是,我实际上并没有在单独的线程中启动解析器,我只是使用处理程序在我的解析器和我的主要 Activity 之间进行通信。 我应该在线程中解析吗?

这是我的主要 Activity 代码:

        tv = (TextView)findViewById(R.id.tv);

    try {
        URL url = new URL("https://www.googleapis.com/shopping/search/v1/public/products?key=AAAAABBBBBCCCCDDDEEEEFFF&country=FR&restrictBy=gtin=5030999075254&alt=atom");
        XMLHandler xHandler = new XMLHandler();
        Feed feed = xHandler.parse(url.openStream());

            if(feed.getTotalResults()==0 || feed.getItems() == null || feed.getItems().isEmpty()) {
                Log.w("XMLPARSENull", "No items
            }
            else {
                tv.setText(feed.getTotalResults()+" " + feed.getItemsPerPage() + " " + feed.getStartIndex() + " " + feed.getTitle());
                Iterator<Product> it = feed.getItems().iterator();
                while(it.hasNext()) {
                    Log.w("XMLPARSEFeed",it.next().getName());

                }
            }


    } catch(Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        Log.e("XMLPARSEException", "ERROR",e);
    }

最佳答案

我认为与其说是解析,不如说是网络操作,因为任何网络请求都不应该在 UI 线程中执行。您可以生成一个新的 Thread 或一个 AsyncTask 来执行您的网络请求。以下是一些帮助链接:

关于android - 我应该启动一个线程来解析一些 xml 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10474518/

相关文章:

Android使用PorterDuff合并图片

android - 使用图层列表自定义背景以显示对角线?

java - ExecutorService 的 invokeAll() 会同时运行任务,或者完全取决于硬件(运行执行程序服务的地方)和网络

java - 是否鼓励在 Java 中使用多处理池?我有正在转换为 Java 的 Python 代码

android - 在应用程序之间无延迟发送实时数据的最佳方式是什么

java - Appengine API 方法返回模型集合

Java Android 增强现实应用图像坐标

android - 并排放置 2 张图片并叠加文字

XML 文件中的 Android 命名空间

c# - 如何在 API 中向客户端代码公开实现生产者消费者管道的类?