Могу ли я переопределить android:noHistory в коде?

Я использую действие из сторонней библиотеки, в которой для android:noHistory установлено значение «true». Могу ли я переопределить это значение в коде перед запуском действия?

Есть ли противоположность флагу «FLAG_ACTIVITY_NO_HISTORY», который я мог бы использовать с намерением?

Прочтите это developer.android.com/reference/android/content/Intent

Vijay Singh Chouhan 12.03.2019 11:37

@VijaySinghChouhan Это первая ссылка, которую я проверил, но не смог найти ответ. Если вы нашли там ответ, не могли бы вы сообщить мне, чтобы я мог прочитать его еще раз более внимательно?

Sulaiman 12.03.2019 11:42

Ни один из которых мне не известен. Вы можете использовать FLAG_ACTIVITY_NO_HISTORY во время выполнения, когда это необходимо, и удалить его из манифеста. У намерения есть метод #removeFlags(из API 26). но я никогда не использовал его..

ADM 12.03.2019 11:50
1
3
298
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Если установлено, новое действие не сохраняется в стеке истории. Как только пользователь уходит от него, действие завершается. Это также можно установить с помощью атрибута noHistory.

Если установлено, onActivityResult() никогда не вызывается, когда текущая активность запускает новую активность, которая устанавливает результат и завершается.

https://developer.android.com/reference/android/content/Intent#FLAG_ACTIVITY_NO_HISTORY

Простое копирование и вставка. Но это не ответ.

ADM 12.03.2019 11:42

Да, скопируйте/вставьте из документа. Потому что автор не предоставил подробной информации ;) Итак, теперь он может прочитать об этом.

jDroidCoder Group 12.03.2019 11:44
Ответ принят как подходящий

I am using an activity from a third-party library that has set android:noHistory to "true".

Добавьте элемент <activity> в манифест вашего собственного приложения с атрибутом android:name, идентифицирующим активность, и с android:noHistory = "false". В рамках процесса слияния манифеста значение android:noHistory вашего приложения должно переопределять значение android:noHistory библиотеки.

В общем, переопределение записи манифеста библиотеки является несколько рискованным шагом, так как вы можете сломать что-то, от чего зависит библиотека. В данном конкретном случае он должен быть безопасным.

Мне также пришлось включить атрибут tools:replace = "android:noHistory" в мой элемент <activity>, чтобы он успешно объединился. Спасибо.

Sulaiman 12.03.2019 12:21

Другие вопросы по теме