Дело в том, что программа чтения читает веб-страницу только 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
Мобильная версия