Кнопка «Назад» в Android 9 при запуске активности настроек работает некорректно

В нашем приложении есть специальные кнопки, которые переводят пользователя на страницу настроек сети. Мы используем следующий код

 Intent intent=new Intent(Settings.ACTION_WIRELESS_SETTINGS);
 startActivity(intent);

Есть несколько проблем с этой реализацией в Android 9.

  1. по какой-то причине я вижу кнопку «Назад», когда запускаются настройки сети и Интернета. Нажатие этой кнопки «Назад» возвращает пользователя на страницу «Настройки», а не обратно в мое приложение. Это совсем не желательно.
  2. Хуже того, нажатие кнопки «Система назад» полностью возвращает пользователя в панель запуска, тем самым полностью ломая стек навигации назад.

введите здесь описание изображения

В Android 8, однако, все работает нормально, ни программная кнопка «Назад» вверху, ни системные кнопки «Назад» не имеют поведения, описанного выше.

введите здесь описание изображения

Что не так с Android 9? Существуют ли специальные флаги действия, которые я должен указать в намерении, которое запускает сетевые настройки?

P.S.

Оба телефона Nokia 2.1, один с Android 8.1, один с Android 9.0.


person kyurkchyan    schedule 09.03.2019    source источник
comment
Вы уже нашли решение?   -  person Jaswant Singh    schedule 06.04.2020
comment
@JaswantSingh не совсем, так работает Android, как описано в ответе ниже.   -  person kyurkchyan    schedule 06.04.2020


Ответы (2)


Реализация Android 9 является правильной, и поэтому они изменили ее:

https://developer.android.com/training/design-navigation/ancestral-temporal

Кнопка «Вверх» появляется на панели приложений и используется для навигации внутри приложения на основе иерархических отношений между экранами.

person Gavin Wright    schedule 09.03.2019
comment
Спасибо за ответ. Но такая реализация не имеет никакого смысла. Потому что, если я запустил настройки из своего приложения, если пользователь хочет вернуться в мое приложение, нет возможности, кнопки вверх и назад перенесут их в разные места. - person kyurkchyan; 09.03.2019
comment
Я бы согласился, что они делают разные вещи, но разные правильные вещи. Я не думаю, что поведение, которое я вижу, правильное, потому что нет смысла переходить из App1 в Настройки, затем нажимать назад и переходить в панель запуска вместо перехода в App1, вы согласны? - person kyurkchyan; 09.03.2019
comment
Я запустил код на своем Pixel 3 под управлением Android 9. Нажав кнопку «Назад», я возвращаюсь в свое приложение, а не в панель запуска. - person Gavin Wright; 09.03.2019
comment
Спасибо, это ценная информация. Я предполагаю, что это может быть проблема моего телефона. - person kyurkchyan; 09.03.2019

Я думаю, что правильный поток должен быть:-
1. При переходе вверх -> Любое приложение будет перемещаться внутри приложения.
2. При нажатии системной кнопки «Назад» приложение перейдет к предыдущему действию в задаче или к предыдущей задаче (если запущено). с Intent.FLAG_ACTIVITY_NEW_TASK).

Во время тестирования на устройстве Android 9.0 я обнаружил такое же поведение. В вашем случае это может быть проблемой сборки. Устройство, на котором я тестировал, имеет следующую конфигурацию. введите здесь описание изображения

person ADM    schedule 09.03.2019
comment
Спасибо за ответ. Когда вы говорите «Во время тестирования на устройстве Android 9.0», я обнаружил такое же поведение. что вы подразумеваете под одинаковым поведением? - person kyurkchyan; 09.03.2019
comment
То же самое я упомянул в своем ответе. Извините за недопонимание . Устройство представляет собой стоковый Android Motorola One Power. Так что вы можете пойти с этим, потому что это выглядит как ошибка, зависящая от сборки/устройства. - person ADM; 09.03.2019
comment
Итак, просто для ясности, когда вы нажимаете системную кнопку «Назад», вы переходите к приложению, из которого был запущен экран «Настройки», верно? Вы не попадаете в системный лаунчер, не так ли? - person kyurkchyan; 09.03.2019
comment
Я обнаружил ту же проблему в устройстве Android 9 Samsung S9+ после 1 июля 2019 года. Но поведение, как и ожидалось, 1 июня 2019 года и ранее. У вас есть обходной путь? - person Abu Noman; 31.10.2019