Android: предыдущая активность не завершена с использованием FLAG ACTIVITY CLEAR TOP - PullRequest
0 голосов
/ 06 марта 2019

Я новичок в программировании на Android, поэтому могу пропустить что-то важное.

Что я хочу сделать, это завершить текущее действие (ActivityB) и предыдущее действие (ActivityA). И пользователи могут переключаться между ActivityA и ActivityB, используя FLAG_ACTIVITY_REORDER_TO_FRONT. Теперь я хочу закончить ActivityB и предыдущий ActivityA и начать новый ActivityA.

Однако, похоже, что предыдущий ActivityA все еще работает даже после окончания ActivityB.

Код такой.

ActivityA

private void startActivityB() {
          Intent intent =
                    new Intent(ActivityA.this, ActivityB.class);
            intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
            startActivity(intent);
}

ActivityB

private void exitActivityB() {
                       Intent intent =
                        new Intent(ActivityB.this, ActivityA.class);
                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(intent);
}

@Override
private void onBackPressed() {
        // finish ActivityB and the previous ActivityA
        Intent intent =
                new Intent(ActivityB.this, ActivityA.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
        startActivity(intent);

}

Что я не так с этим? Как я могу закончить предыдущий ActivityA и начать новый ActivityA?

Ответы [ 3 ]

1 голос
/ 06 марта 2019

Попробуйте следующим образом

Intent i = new Intent(ActivityB.this, ActivityA.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(i);
0 голосов
/ 06 марта 2019

Попробуйте этот код

Intent i = new Intent(ActivityB.this, ActivityA.class); 
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK |Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i); 
finish();
0 голосов
/ 06 марта 2019

Попробуйте это:

@Override
private void onBackPressed() {
        // finish ActivityB and the previous ActivityA
        Intent intent =
                new Intent(ActivityB.this, ActivityA.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(intent);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...