Я должен заменить текущее действие новым. Таким образом, я хочу запустить новое действие и удалить текущее действие из стопки задачи.
На основе документации кажется, что лучший способ состоял бы в том, чтобы запустить действие с помощью Activity.startActivity как обычно и затем назвать Activity.finish сразу для закрытия текущего действия.
Действительно ли это - допустимое использование этих API, или я должен делать что-то еще?
Можно использовать FLAG_ACTIVITY_CLEAR_TASK при запуске действия. Я также определил launchMode для своего действия в декларации как однозадачный, но это было то, потому что я хотел то поведение для нового действия. Я думаю, что можно получить то, что Вы хотите относительно очистки предыдущего действия независимо от того, что Вы используете для launchMode с Вашим новым действием, пока Вы передаете startActivity флаг FLAG_ACTIVITY_CLEAR_TASK.