Как использовать несколько MapActivities/MapViews на приложение/процесс Android

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

Проблема теперь - это, если пользователь перешел назад к первому MapActivity (тот, который показывает несколько мест) мозаики не будут загружаться больше + иногда, с OutOfMemoryErrors встречаются.

Согласно Android JavaDocs, только возможно иметь то MapActivity для каждого процесса. Однако я не хочу определять мой MapActivity как singleInstance/singleTask, так как пользователь должен всегда мочь перейти назад к первому MapActivity, который показывает несколько мест.

Я видел, что приложение Google Places (который шел с Google Map 4.4) для Android использует несколько MapActivity экземпляры. Как это возможно? И как я могу достигнуть его в своем приложении?

10
задан rds 14 January 2013 в 10:51
поделиться

1 ответ

Согласно JavaDocs Android, это можно иметь только одну MapActivity на класс

Это не один вид карты на класс, это на процесс.

Известно, что при использовании нескольких представлений карт в одном процессе могут возникнуть некоторые проблемы. Обычно так и происходит (ваше приложение работает в одном процессе), если вы не настроили ничего конкретного. Однако вы можете использовать атрибут android:process в манифесте для назначения вашим действиям:

<activity android:name=".activity.directory.MapView1" android:process=":MapView1">

<activity android:name=".activity.directory.MapView2" android:process=":MapView2">

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

Также смотрите обсуждение ошибки в багтрекере android:

http://code.google.com/p/android/issues/detail?id=3756

20
ответ дан 3 December 2019 в 15:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: