Кнопка «Назад» вернет на домашнюю страницу после выхода из firebase в приложении - PullRequest
0 голосов
/ 16 ноября 2018

Моя проблема очень похожа на этот пост: ( Когда я нажимаю кнопку «Назад» на странице входа, он переходит в главное меню (после того, как я выбрал «Да» для выхода из системы действий в MainMenu) ).

По сути, даже после того, как я выбрал опцию «ДА» для выхода из системы, он возвращает меня на страницу с отступом (страницу входа в систему). Однако, когда я нажимаю кнопку «Назад» на моем реальном телефоне (S7 Edge +) и 2 эмуляторах (Nexus 4 & Pixel 2 XL), это снова приводит меня на страницу панели инструментов, чего не должно быть.

** ЧТО Я ПОПРОБОВАЛ, я добавил финиш () в функцию выхода из системы и в меню, как показано ниже:

Функция / метод выхода из системы

private void Logout(){
    firebaseAuth.signOut();
    finish();
    startActivity(new Intent(SecondActivity.this, MainActivity.class));
    finish();
}

Меню

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    switch (item.getItemId()) {
        case R.id.logoutMenu: {
            final AlertDialog.Builder builder = new AlertDialog.Builder(SecondActivity.this);
            builder.setMessage("Are you sure you want to logout?");
            builder.setCancelable(true);
            builder.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    startActivity(new Intent(SecondActivity.this, SecondActivity.class));
                }
            });
            builder.setPositiveButton("YES", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Toast.makeText(SecondActivity.this, "You are succesfully signed out!", Toast.LENGTH_LONG).show();
                    Logout();
                    finish();
                }
            });
            AlertDialog alertDialog = builder.create();
            alertDialog.show();
            break;
        }
        case R.id.profileMenu: {
            startActivity(new Intent(SecondActivity.this, UpdateProfileActivity.class));
            break;
        }
        case R.id.passwordMenu: {
            startActivity(new Intent(SecondActivity.this, UpdatePasswordActivity.class));
            break;
        }
    }
    return super.onOptionsItemSelected(item);
}

Проблема все еще сохраняется. В logcat не найдено ошибок, поэтому я не уверен, как решить эту проблему?

У кого-нибудь есть решение? Пожалуйста, направь меня.

Спасибо.

1 Ответ

0 голосов
/ 16 ноября 2018
 private void Logout(){
    firebaseAuth.signOut();
    Intent intent = new Intent(SecondActivity.this, MainActivity.class);
     intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                    | Intent.FLAG_ACTIVITY_CLEAR_TOP
                    | Intent.FLAG_ACTIVITY_CLEAR_TASK);
            startActivity(intent);
    finish();
}

** Просто попробуйте это **

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