Разработка Xamarin с AsyncTask считается устаревшей - PullRequest
1 голос
/ 11 декабря 2019

Мы находимся на пороге запуска проекта мобильного приложения, и с помощью нашего стека Microsoft мы хотим разработать наше приложение с Xamarin, если быть более точным, Xamarin.Android и Xamarin.IOS (то есть без форм).

Поскольку наши нынешние знания о Xamarin в целом очень ограничены, мне интересно, какое влияние окажет устаревание AsyncTask на разработку Xamarin. Насколько мне известно, Xamarin и .NET сильно зависят от использования AsyncTask?

Я знаю, что устарел не означает, что он будет недоступен или непригоден, но с учетом будущего развития было бы разумно перейти кРазработка ксамарина?

TL; DR: Должны ли разработчики Xamarin беспокоиться о том, что AsyncTask устарела?

Ответы [ 2 ]

2 голосов
/ 11 декабря 2019

Вы имеете в виду AsyncTask от Android.OS.AsyncTask?

Существует большая разница между AsyncTask и Task от System.Threading.Tasks.

AsyncTask доступна только на Android, в то время какЗадача запекается в .NET. System.Threading.Task никуда не денется и является хорошим способом написания асинхронного кода.

Код с AsyncTask будет выглядеть примерно так:

public class MyTask : AsyncTask
{
    protected override void OnPreExecute()
    {
    }

    protected override Java.Lang.Object DoInBackground(params Java.Lang.Object[] @params)
    {
        SomeMethodRunningAsync();
    }

    protected override void OnPostExecute(Java.Lang.Object result)
    {
    }
}

В то время как код с использованием Task будетбольше похоже на:

public async Task DoStuffInBackground()
{
    await SomeMethodRunningAsync();
}

Я очень сомневаюсь, что вы используете AsyncTask, если вы не портировали некоторый код Java или не перевели некоторые примеры кода с Java на C #.

1 голос
/ 11 декабря 2019

Краткий ответ: нет.

Длинный ответ: Xamarin может использовать собственные API-интерфейсы (зависящие от платформы) и .NET API-интерфейсы (независимые от платформы). Если ваше приложение использует нативные API, вы можете делать с ними то же, что и нативный разработчик, но они могут работать только на одной платформе. Если они устарели, вы находитесь в том же положении, что и любой собственный разработчик (обычно это обходной путь / новый API). API .NET никогда не устаревают, поскольку задача Xamarin - реализовать их и поддерживать их в работе, если они используют что-то, что устарело, и невозможно .NET не может быть реализовано, это просто вопрос необходимых усилий. Чтобы было понятно, вы говорите об изменениях в нативном API и спрашиваете, влияют ли они на .NET API. Как обсуждалось выше в теории, это может произойти, но я не думаю, что такие проблемы когда-либо случались, и это совсем не похоже на неприятности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...