Xamarin.Android - Диалог не отображается - PullRequest
0 голосов
/ 10 октября 2018

У меня проблема с моим настраиваемым диалогом.Я хочу показать это, пока мое приложение что-то делает (в частности, создает растровое изображение и выполняет HTTP-запрос).Это часть моего кода:

        LoadingDialog myLoading = new LoadingDialog();
        myLoading.Show()
        TakePicture();
        while (myPhotoFace == null) { }

        Context context = Android.App.Application.Context;
        if (Connectivity.isConnected(context))
        {
            byte[] bytePhoto;
            using (var stream = new MemoryStream())
            {
                Constants.myGallery.Compress(Bitmap.CompressFormat.Jpeg, 40, stream);
                bytePhoto = stream.ToArray();
            }
            byte[] byteFace;
            using (var stream = new MemoryStream())
            {
                myPhotoFace.Compress(Bitmap.CompressFormat.Jpeg, 40, stream);
                byteFace = stream.ToArray();
            }

            MediaEmotion myMedia = new MediaEmotion();
            string token = Utils.utils.GetParametro("token");

            myMedia.mediaID = 0;
            myMedia.face = byteFace;
            myMedia.photo = bytePhoto;

            var client = new RestClient("https://myServer.net/");
            var request = new RestRequest("/Controller/Method?token=" + token, Method.POST);
            string json = JsonConvert.SerializeObject(myMedia);
            request.AddParameter("stringaMediaEmotion", json);
            IRestResponse response = client.Execute(request);
            Object myObject = JsonConvert.DeserializeObject<Object>(response.Content.ToString());
            [...]

После чего я что-то делаю, прежде чем начать новую деятельность.Как вы можете видеть, в качестве первой операции я показываю свой диалог (который, как я убедился, работает правильно), но отображается только как последнее, прежде чем перейти к новому действию.Также, просто пытаясь изменить текст текстового представления, проблема та же.Зачем?В чем проблема?Как можно решить это?

1 Ответ

0 голосов
/ 10 октября 2018

Попытайтесь поместить весь связанный с сетью код в асинхронную задачу: вы освободите основной поток от сетевой операции, и всплывет всплывающее окно, пока вы не перейдете к другому действию.

Вы можете найти некоторыеХорошие примеры и документация здесь https://blog.xamarin.com/getting-started-with-async-await/

...