В Android, давайте предположим, что у меня есть следующие действия
Деятельность A -> Деятельность B -> Деятельность C -> Деятельность D
В некоторых сценариях янеобходимо непосредственно перейти от действия D к действию A (пример: сценарий выхода из системы).В этом случае я использую метод ниже, чтобы очистить backstack
и перейти к Деятельности А. Это не что иное, как убийство и открытие приложения снова.
// Go to LoginActivity.java
Intent intent = new Intent(this, LoginActivity.class);
intent.addFlag(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
finish();
Это абсолютно нормально работает!В этом нет сомнений.
Что мне сейчас нужно?
Когда я перехожу от Деятельности D к А (используя FLAG_ACTIVITY_NEW_TASK
.) Iожидается, что OnDestroy()
метод Деятельности D, C, B выполнится.Но в настоящее время это не удар / запуск.
Почему я ожидаю вызова метода OnDestroy
?
Мне понадобится вызвать один метод trackevent (отменить регистрацию) из всех действий при очистке обратнойстек.Например: из действий D, C и B. Следовательно, я ожидаю, что метод OnDestroy
будет вызываться (или любой метод тоже подойдет).Пожалуйста, помогите мне в этом?