有什么方法可以获取 XMLPullParser 函数的进度吗?

Is there any way to get the progress of an XMLPullParser function?

解析需要一些时间,所以我希望能够显示一个进度条。但是我似乎无法找到一种方法来更新进度。 问题来自这样一个事实,即似乎没有一种方法(至少我知道)来检测 pullparser.next() 将 运行 的次数。我试过在最初加载数据时添加和计算换行符,认为这也没有给出正确的结果。

int eventType = pullparser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
    if (eventType == XmlPullParser.START_TAG) {
        //Do stuff
    }
    eventType = pullparser.next();
    //Update progress by x%
}

我目前已经设计了一个解决方法,如果有人无意中发现了这个话题,请放在这里。只要您在原始 XML 字符串中保留换行符:如果您检查 eventtype 是文本并且它是空白,然后只增加计数器,您就可以计算出进度。

private int incrementPullParser(int eventType, XmlPullParser xpp) throws XmlPullParserException, IOException {
            if (eventType == XmlPullParser.TEXT && xpp.isWhitespace()){
                //used for counting the progress
                currentLines++;
                publishProgress((double)(currentLines/maxLines)*100);
                return xpp.next();
            }
            return eventType;
        }