Android: наложение на окно поверх действий задачи

Я хотел создать Наложение, подобное HUD, которое находится на экране во время изменений стека активности моих приложений (задачи моего приложения).

Я нашел пару примеров с использованием WindowManager, но я не смог выяснить параметризацию для правильного z-индекса, если хотите. Это должно было либо привести к тому, что следующее действие перешло поверх моего наложения, либо к сильному наложению было общесистемное наложение, которое было видно также, когда приложение переместилось в фоновый режим.

Я стремлюсь показать представление поверх всех активностей, относящихся к моему приложению или задаче (приложение предпочтительнее). Я знаю, что приложения и задачи - это две разные вещи на Android ...

Чего я явно не хочу, так это использовать общесистемные окна, требующие android.permission.SYSTEM_ALERT_WINDOW

--- мой случай использования -

Я реализую поток, который включает в себя действие, обеспечивающее форму для ввода данных пользователем. этот пользовательский ввод должен быть обработан довольно сложным образом, чтобы получить возможный результат +/- 10 состояний. Обработка может занять до 10 минут, и в зависимости от результата этого процесса я хочу отобразить соответствующее представление. Во время выполнения процесса я намерен держать пользователя в курсе, но не могу позволить ему перемещаться по приложению (кроме прерывания процесса). Каждый возможный результат длительной операции будет представлен в другой деятельности.

Мне хорошо известно, что существует несколько возможных подходов (например, только один вид деятельности). Но это решение уже принято и выходит за рамки этого вопроса. Я реализовал решение, в котором для отображения этого наложения используется система Windows. Чтобы скрыть наложение, мне нужно сосчитать события onStart, onStop и интерпретировать «Приложение перешло в фон» и «Приложение переместилось на передний план». Это кажется грязным, и я не удовлетворен этим решением. Я бы предпочел сделать шаг назад и отобразить свое наложение поверх действия вызова, а после завершения процесса скрыть его и перейти к действию, отображающему результат.

Еще одна вещь, которую я попробовал, - это перенести представление с одного вида деятельности на другой. Но это показывает некоторое мерцание и прерывание моей анимации, которое мне не нравится.

Я был бы признателен, если бы мы могли сосредоточиться на вопросе о том, возможно ли отображать представление в верхней части окна приложения / задачи, а не внутри окна системы или деятельности;)

Ответы на вопрос(3)

Ваш ответ на вопрос