Вопрос

У меня есть этот вопрос, касающийся действий Android и AndroidManifest.xml.Вопрос возник, когда я работал с Java-сервлетами и хотел создать "основанный на модулях" или что-то похожее на сервер на основе плагинов.Это работает нормально, и я могу динамически загружать нужные мне сервлеты, используя подход к коду, аналогичный этому: Динамически добавляйте сервлет в ServletConfig.Сервлеты динамически обнаруживаются и сопоставляются во время запуска сервера.

Вопрос здесь не в том, как найти нужные действия, или как создать их новый экземпляр, или как их запустить, с этой частью я разобрался.Я могу перебирать свои пакеты и находить соответствующие классы Activity, создавать их новые экземпляры и добавлять их в список.

Я использую interface который должны выполнять все действия, чтобы быть действительным.Таким образом, я могу создавать новые части, расширения или новые функции для своего приложения, и все просто работает.В моем приложении у меня есть список кнопок, на которые пользователи могут нажимать, и список кнопок генерируется путем добавления их в мое представление с помощью ListView.

private void displayLoadedContent() {
    View v = inflateLayout(R.layout.buttonlayout);
    ListView view = (ListView) v.findViewById(R.id.list);
    view.setAdapter(new ListButtonAdapter(this, content));
}

где content объявляется как

List<MyActivityInterface> content;

и ListButtonAdapter расширяться BaseAdapter.

Так что никаких проблем нет.Проблема в том, что я должен объявлять каждое из моих действий в AndroidManifest.xml.Этот файл похож на большой список возможных действий для отображения, и довольно беспорядочный, поэтому я не собираюсь отображать код здесь.

Я понимаю, что мне придется добавить одно действие в манифест, но я надеялся, что одного действия должно быть достаточно.Мой подход во многих отношениях можно рассматривать как Схема переднего контроллера, где каждое из действий отвечает за загрузку и отображение необходимой им активности.

Я просто спрашиваю, возможно ли вообще динамически регистрировать действия в манифесте (или разрешать им запускаться другим способом), и если нет, то есть ли какое-либо другое действительное решение?

Это было полезно?

Решение

Android требует, чтобы каждое действие было зарегистрировано в вашем AndroidManifest.xml подайте заявку заранее.При развертывании ваше приложение будет храниться на устройстве в виде файла .apk, который нельзя изменить (кроме обновления / замены новым APK).

Если я правильно понимаю вопрос, вы просто не хотите перечислять большое количество действий в вашем файле манифеста? Фрагменты не нужно регистрировать в файле манифеста, поэтому, если ваша цель состоит в динамической замене компонентов пользовательского интерфейса, это было бы ответом.Фрагменты доступны обратно в версию 1.6 через Библиотека поддержки.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top