Замените манифест-фильтр-манифест для расширенного класса во флейворе - PullRequest
1 голос
/ 26 февраля 2020

В моем приложении вкус Lite имеет свой собственный манифест и переопределяет основной SplashActivity с SplashActivityLite. Основной манифест имеет фильтр намерений запуска для SplashActivity. Но так как SplashActivityLite также имеет фильтр намерений запуска, установлены 2 иконки приложений.

Я попытался добавить инструменты: node = "replace" и tools: node = "merge" в тег активности SplashActivityLite. Я попытался добавить инструменты: node = "replace" для каждого атрибута в фильтре намерений (теги действий и категорий).

Как можно переопределить фильтр намерений основного манифеста, если имена классов не совпадают?

1 Ответ

1 голос
/ 26 февраля 2020

Учитывая ваш комментарий, вы, похоже, нацеливаетесь на объединенный манифест для этого аромата, где SplashActivityLite существует, но SplashActivity нет.

В манифесте аромата я думаю, что вам нужно иметь два <activity> элемента (по крайней мере, с точки зрения актуальности для этой проблемы):

  • Один будет указывать на SplashActivityLite и будет нормальным, с вашим MAIN / LAUNCHER <intent-filter>

  • Другой указал бы на SplashActivity и имел бы tools:node="remove", чтобы избавиться от него из объединенного манифеста

В качестве альтернативы вы можете:

  • иметь SplashActivityLite нормальную запись манифеста в аромате

  • в main, включить android:enabled="@bool/useMainSplash" SplashActivity

  • В main определите useMainSplash как true

  • В аромате определите useMainSplash для be false

Это сохранит запись манифеста для SplashActivity, но отключит ее, чтобы она не запускалась.

В любом подходе SplashActivity класс не должен быть затронут, поэтому SplashActivityLite может продлите его без проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...