Перекрывающиеся действия в Android

#android #view #android-activity #android-layout #activitygroup

#Android #Вид #android-активность #android-layout #activitygroup

Вопрос:

Я пытаюсь реализовать собственный MapView внутри веб-платформы приложений (quickconnect). Прямо сейчас весь фреймворк состоит из одного действия (это неизбежно, поскольку фреймворк полностью запускает тело приложения в WebView, а фреймворк анализирует вызовы javascript для встроенных функций, таких как звук и собственные системные представления). Что я понял, так это то, что MapView — странный зверь, поскольку его нужно запускать внутри MapActivity.

Итак, у меня остается два варианта: преобразовать единственное действие, которое запускает фреймворк, в MapActivity, добавив методы для управления MapView внутри (проблема в том, что мы хотим внести код обратно в проект фреймворка, а система обрабатывает MapActivities иначе, чем обычные действия, в результате чего все приложения, не относящиеся к карте, используют больше ресурсов, чем необходимо), или каким-то образом наложить MapActivity поверх основного действия, которое запускает WebView, при этом основное действие взаимодействует с MapActivity через Intents.

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

tl; dr: Возможна ли реализация перекрывающихся действий в Android и как мне это сделать?

Комментарии:

1. Для вашего вопроса требуется пробел, пустые строки и, возможно, вопросительный знак в конце с четким вопросом…

2. Немного прояснил это, добавил много объяснений, потому что я знаю, что это полностью противоречит дизайну Android.

Ответ №1:

Неясно, как на самом деле будет работать ваша цель. Давайте предположим, что у вас действительно есть «перекрывающиеся действия». Что тогда? Чего ты добился? Не похоже, что код JavaScript из первого действия может что-либо сделать со вторым действием. Вам придется реализовать 100% вашей бизнес-логики для MapActivity в MapActivity . Поскольку вам все равно придется научить «quickconnect» вызывать «quickconnect», startActivity() просто реализуйте свою карту как обычную MapActivity , на Java, и покончим с этим.

Если, OTOH, ваша цель состоит в том, чтобы код JavaScript, поддерживаемый quickconnect, управлял MapView , тогда у вас нет выбора, кроме как реорганизовать весь quickconnect, чтобы использовать композицию, а не наследование, чтобы движок quickconnect можно было использовать внутри Activity или a MapActivity . В любом случае, это может оказаться необходимым в долгосрочной перспективе, поскольку FragmentActivity это необходимо для использования фрагментов в библиотеке совместимости Android, и можно предположить, что quickconnect должен обеспечивать поддержку планшетов и телевизоров с использованием фрагментов.