3
respostas

Método OnStart() não é chamado quando uma mensagem é enviada.

namespace TestDrive
{
    public partial class App : Application
    {
        protected override void OnStart()
        {
            MessagingCenter.Subscribe<Usuario>(this, "SucessoLogin",
                (usuario) =>
                {
                    MainPage = new MasterDetailView(usuario);
                });
        }
    }
}
3 respostas

Olá, Willians

Você tentou colocou um breakpoint nesta linha?

MainPage = new MasterDetailView(usuario);

Somente essa linha é executada quando a mensagem é enviada. O restante do método é executado somente na inicialização do app.

Sim, Marcelo. Coloquei um breakpoint na abertura da chave do método. O único momento em que o aplicativo executa este método, é quando o mesmo é iniciado.

protected override void OnStart()
{  //Coloquei o breakpoint nesta linha
        MessagingCenter.Subscribe<Usuario>(this, "SucessoLogin",
                (usuario) =>
                {
                    MainPage = new MasterDetailView(usuario);
                });
}

Isso está certo, mas e a linha MainPage = new MasterDetailView(usuario);? Ela é executada quando a mensagem é enviada?

protected override void OnStart()
{  // Executado uma vez só, quando a aplicação inicia
        MessagingCenter.Subscribe<Usuario>(this, "SucessoLogin",
                (usuario) =>
                {
                    //A linha abaixo deve ser executada toda vez que uma mensagem é enviada
                    MainPage = new MasterDetailView(usuario);
                });
}