кнопка вернуться к моему приложению в фоновом режиме, и когда вы возобновите, он запускается снова - PullRequest
0 голосов
/ 13 декабря 2018

Я занимаюсь разработкой приложения в Xamarin.Forms, до того, как я попытался сделать главную страницу сведений, чтобы стать моей главной страницей, когда я вошел в свое приложение, этого я уже достиг.Теперь у меня проблема в том, что когда я использую кнопку позади телефона, мое приложение становится miimiza и переходит в фоновый режим, который я надеюсь, но когда я возвращаюсь к своему приложению, он не продолжает показывать страницу с основными сведениями, а возвращается к моему.LginPage.

Как будто мое приложение работало дважды или, по крайней мере, одновременно существовали два экземпляра LoginPage, это потому, что в моем LoginPage я запускаю некоторое DisplayAlert в соответствии с некоторыми сообщениями, что моя страницапрослушивая через MessaginCenter, и они стреляют дважды.

Может кто-нибудь сказать мне, как я могу вернуть то же самое в свое приложение на странице сведений о главном устройстве и не перезапускать странным образом, описанным?

LoginView.xaml.cs:

public partial class LogonView : ContentPage
{

    LogonViewModel contexto = new LogonViewModel();

    public LogonView ()
    {
        InitializeComponent ();
        BindingContext = contexto;


        MessagingCenter.Subscribe<LogonViewModel>(this, "ErrorCredentials", async (sender) =>
        {
            await DisplayAlert("Error", "Email or password is incorrect.", "Ok");
        }
        );


    }

    protected override void OnDisappearing()
    {
        base.OnDisappearing();

        MessagingCenter.Unsubscribe<LogonViewModel>(this, "ErrorCredentials");

    }
}

Часть моей ViewModel:

if (Loged)
    {
        App.token = token;
        Application.Current.MainPage = new RootView();
    }
    else
    {   
        MessagingCenter.Send(this, "ErrorCredentials");
    }

Спасибо.

Ответы [ 3 ]

0 голосов
/ 13 декабря 2018

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

Однако, когда вы используете кнопку Back, вы продолжаете возвращаться обратно в стек действий, закрывая одно действиеза другим.в конце концов, когда вы закрываете первое открытое действие, ваше приложение закрывается.Вот почему всякий раз, когда вы закрываете свое приложение таким образом, оно перезапускается, когда вы снова открываете его.

Ответ взят из этого ответа .Оригинальный вопрос спрашивает о родной платформе Android, но он все еще применяется здесь.

0 голосов
/ 13 декабря 2018

Это означает, что вы должны использовать Setting Plugin или сохранить данные в свойствах приложения.Вы должны добавить следующий код в файл App.xaml.cs:

if (SettingClass.UserName == null)
                MainPage = new LoginPage();
 else
                MainPage = new MasterDetailPage();

Для настройки плагина вы можете ссылаться на эту ссылку.

0 голосов
/ 13 декабря 2018

Я надеюсь, что это в Android.Все, что вы можете сделать - вы можете переопределить метод backbuttonpressed в MainActivity, чтобы не закрывать кнопку назад, нажатую на странице входа.как ниже, вы также можете добавить некоторые условия.

public override void OnBackPressed()
    {
        Page currentPage = Xamarin.Forms.Application.Current.MainPage.Navigation.NavigationStack.LastOrDefault();


        if (currentPage != null)
        {
            if (currentPage.GetType().Name == "HomePage" || currentPage.GetType().Name == "LoginPage")
            {
                return;
            }
        }
        base.OnBackPressed();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...