XmlReader на AndroidAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 XmlReader на Android

Сообщение Anonymous »

У меня проблема с моим XmlReader.
Дело в том, что программа чтения читает веб-страницу только 2 раза, но мне нужно немного больше.
Если я вызываю свою программу чтения из метода:

Код: Выделить всё

public string Meth1()
{
string tvcal = "";
string url = "http://www.nbrb.by/Services/XmlExRates.aspx?ondate=" + dtp1.ToString("MM/dd/yyyy");
XmlReader reader = XmlReader.Create(url);
while (reader.Read())
{
if (reader.Name.Equals("Currency"))
{
reader.MoveToFirstAttribute();
try
{
if (Int32.Parse(reader.Value) == 145)
{
reader.ReadToFollowing("CharCode");
currencyUSD = reader.ReadElementContentAsString();
reader.ReadToFollowing("Name");
currencyUSD += " " + reader.ReadElementContentAsString();
reader.ReadToFollowing("Rate");
currencyUSD += " " + reader.ReadElementContentAsString() + " руб.\n";

tvcal += ("На Дату------" + dtp1.ToShortDateString() + "------\n");
tvcal += (currencyUSD);
}
if (Int32.Parse(reader.Value) == 19)
{
reader.ReadToFollowing("CharCode");
currencyEUR = reader.ReadElementContentAsString();
reader.ReadToFollowing("Name");
currencyEUR += " " + reader.ReadElementContentAsString();
reader.ReadToFollowing("Rate");
currencyEUR += " " + reader.ReadElementContentAsString() + " руб.\n";

tvcal += (currencyEUR);
}
if (Int32.Parse(reader.Value) == 190)
{
reader.ReadToFollowing("CharCode");
currencyRUR = reader.ReadElementContentAsString();
reader.ReadToFollowing("Name");
currencyRUR += " " + reader.ReadElementContentAsString();
reader.ReadToFollowing("Rate");
currencyRUR += " " + reader.ReadElementContentAsString() + " руб.\n";

tvcal += (currencyRUR);
break;
}
}
catch { }
}
}
return tvcal;
}
он ​​компилируется, и все в порядке, затем, если я вызову его снова, он все равно сработает и вернет мне результат.
Но если я попытаюсь вызвать его в третий раз, он сломается без ошибок: здесь:

Код: Выделить всё

while (reader.Read())
Еще одна проблема с этим считывателем возникла, когда я пытаюсь вызвать другой класс, чтобы использовать там считыватель.
Сначала я вызываю метод Meth1 в своем классе, он дает мне результат, затем я вызываю другой класс, который содержит 2 метода, таких как Meth1, они выполняют ту же работу, но для статической даты. И в момент, когда компиляция доходит до while (reader.Read()) во втором методе другого класса (третий объект XmlReader), он отправляет дескриптор обратно в Android-приложение и через несколько секунд оно прерывается.
Я искал такую ​​проблему, но ничего не нашел.
Другое приложение, работающее в Windows, работает правильно с аналогичными классами и методами.

Подробнее здесь: https://stackoverflow.com/questions/334 ... on-android
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»