Работа с Xamarin Android и C# -
Я хочу иметь функцию загрузки, которая просто загружает следующий элемент (URL) из списка, если первый с индексом 0 завершен. Во время загрузки пользователь должен иметь возможность расширять список (добавлять новые URL для загрузки).
Моя идея заключалась в том, чтобы иметь одну void OnButtonClick()
(для ввода пользователя) и одну пользовательскую функцию aysnc void Download()
, а также возможность использовать «функцию обмена» (намерение) для прямой отправки ссылки. Это работает, НО только если пользователь не использует «функцию обмена» в другом приложении (см. Здесь: Intent.GetStringExtra). Если приложение открывается через это намерение, загрузка l oop полностью перезаписывается. Есть ли способ избежать этой "ошибки" или другого решения для очереди на скачивание?
protected override void OnCreate() //gets called if activity starts
{
string catchedLink = Intent.GetStringExtra(Intent.ExtraText);
if (!String.IsNullOrEmpty(catchedLink))
{
button.Text = catchedLink;
}
}
public OnButtonClick()
{
urlList.Add(Button.Text);
}
private aysnc void Download()
{
if(IsDownloading) return;
IsDownloading = true;
do
{
await DownloadSomethingFromTheInternet(); //Let's say these two function need 2 mins to complete -
await SafeItToStorage(); //But after one minute the user adds a secound url for download
//so this loop needs to run again (see below)
urlList.Remove(urlList[0]);
} while (urlList.Count >= 1) //see here
IsDownloading = false;
}
Пожалуйста, оставьте комментарий, если требуется более подробная информация.