Я использую проект A и проект библиотеки для разработки своего приложения для Android. В обоих этих проектах есть действия. Если я в настоящее время нахожусь в проекте A, то легко запустить действие в проекте библиотеки, просто импортировав его. Однако я не уверен, как начать действие в проекте A, если я исхожу из действия в проекте библиотеки. Я пытаюсь сделать проект библиотеки независимым от имени пакета проекта A, так как я буду использовать его для нескольких приложений. Есть идеи, как это сделать? Спасибо.
Как начать основную деятельность из библиотеки?
Ответы (4)
Я считаю, что это самый простой ответ: вам понадобится объект, существующий в библиотеке, который вы можете расширить в своем проекте.
Представьте, что в вашей библиотеке есть приложение LibraryApplication, которое расширяет ваше ProjectApplication. LibraryActivity может вызывать:
((LibraryApplication)getApplication()).startNewActivity(this, "goHome")
Ваше приложение ProjectApplication реализует этот новый метод:
public void startNewActivity(Context context, String action) {
if("goHome".equals(action)) {
startActivity(context, ProjectHomeActivity.class);
}
}
Есть несколько возможных решений.
Лучше всего зарегистрировать фильтр намерений в записях манифеста для действий. которые вы хотите сделать доступными для других ваших проектов. Существует отличное руководство по фильтрам намерений здесь.
Другой вариант — передать класс в проект библиотеки и использовать Intent (Context packageContext, Class cls), чтобы создать намерение для запуска и запуска действия. Однако использование фильтров намерений было бы лучшей практикой и опытом обучения.
Удачи!
Вы можете добавить проект как внешнюю библиотеку. Также вы можете использовать maven для такого рода вещей.