Эй! (Прошу прощения за длинный пост здесь)
Я пишу несколько приложений, которые будут основаны, по сути, на одном и том же коде.
Каждое приложение будет иметь свои отличия, в некоторых будут новые действия, всем будут назначены разные ресурсы .
Я пытаюсь использовать проект библиотеки Android, чтобы разместить весь общий код в одном месте, поэтому серьезные изменения нужно внести только один раз, и все проекты будут обновлены.
Теперь ресурсы - простое решение, так как я могу просто определить каждый ресурс в основном приложении, и они будут переопределять ресурсы в проекте библиотеки, пока соглашения об именах остаются неизменными.
Теперь, у меня вопрос, как мне сделать то же самое, но для занятий? Например, у меня есть базовое представление в качестве оболочки для общего кода для всех представлений. в этом я запускаю различные мероприятия. Что, если все три приложения должны запускать разные действия, поскольку они будут содержать разные пользовательский интерфейс и функции? Как мне это сделать? Проект библиотеки никогда не узнает, что основной проект хочет использовать другое действие, поскольку оно уже скомпилировано.
У меня есть несколько решений, которые я придумал, но я хочу знать, есть ли у кого-нибудь еще какие-нибудь идеи? Здесь будет очень полезно получить обратную связь:
Действие в библиотечном проекте, которое должно быть запущено, хранит ссылку на загружаемый класс, который будет определен в основном приложении при его запуске. Это было, когда проект библиотеки вызывает это действие, он может загрузить то, что ему было сказано.
Я оставляю всю функциональность, которая не изменится, внутри деятельности библиотечных проектов. Затем я расширяю это действие и переопределяю onCreate, чтобы делать то, что мне нужно здесь (например, загружать разные макеты, настраивать представления и т. Д.). У этого есть недостаток, так как я должен определить большинство точек входа в моем основном приложении, а не в проекте библиотеки.
Я надеюсь, что вы понимаете мою проблему. Пожалуйста, спросите, плохо ли я это объяснил.
Спасибо,
Адам