Возврат к первому действию в стеке действий без явного вызова
Я разрабатываю приложение, которое состоит из двух библиотечных проектов. Оба проекта библиотеки используются самим приложением.
Первый библиотечный проект можно рассматривать как основной библиотечный проект, поскольку он содержит главное меню в виде панели для всего приложения. Из одной записи в панели управления пользователь может начать действие, которое является частью второго библиотечного проекта.
Все действия и любые последующие действия, которые можно начать с этого действия, также являются частью второго библиотечного проекта. Так что второй библиотечный проект ничего не знает о первом.
В конце потока действий пользователь должен вернуться к активности панели, нажав одну кнопку. Поэтому мне нужно очистить весь стек действий, кроме первого (панель инструментов). Обычно я бы сделал это, запустив действие Dashboard с флагом FLAG_ACTIVITY_CLEAR_TOP. Также использование FLAG_ACTIVITY_NO_HISTORY не будет возможным, так как мне нужна история.
Но, как я упоминал ранее, ни один из компонентов второго библиотечного проекта не должен ничего знать о главном библиотечном проекте. Поэтому вызов активности Dashboard с флагом не является решением.
Поэтому я ищу способ завершить все действия второго библиотечного проекта, но не действия панели мониторинга основного библиотечного проекта.
1 ответ
Когда ваша панель инструментов вызывает второе действие, связывайте имя класса (как строку) в намерении. Во втором упражнении вы можете использовать это имя класса, чтобы создать намерение вернуться.
использование MyActivity.getClass().getName()
сформировать строку.
использование Class.forName(className)
чтобы вернуть класс.
Изменить: Вам также может понадобиться получить полное имя пакета для forName()
работать: .getClass().getPackage().getName()