2012-03-12 4 views
0

Я только начал работать с Android, и у меня проблемы с моей картой. Я создал TabActivity и добавил MapActivity в качестве одной из вкладок с:Android Flicker GoogleMaps

spec = tabHost.newTabSpec("map").setIndicator("Map"); 
intent= new Intent().setClass(this, NavisMapActivity.class); 
spec.setContent(intent); 
tabHost.addTab(spec); 

В MapActivity я получаю MapView от макета XML с findViewById.

 <com.google.android.maps.MapView 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/mapview" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:apiKey="my_key_is_here" 
     android:clickable="false" /> 

Когда я загружаю приложение, все работает отлично, пока я не переключаю вкладки или не вызываю другое приложение. В основном, когда вызывается OnPause/OnStop. Затем, когда я возвращаюсь к карте, ее плитки начинают мерцать постоянно. Единственное решение - заставить приложение закрыться.

Это происходит только со спутниковыми плитами и с версии 2.3.5 (проверено на реальном телефоне и в эмуляторе Eclipse).

До сих пор я пытался:

  • команда, используя mapView.destroyDrawingCache() в функции OnPause
  • добавления MAPview с помощью кода вместо XML макета
  • разрушающего весь MapActivity с LocalActivityManager, когда вкладка включается и создание нового

Ничего из этого не помогло. Может ли кто-нибудь помочь мне? Спасибо

+0

Вы пробовали создавая пользовательскую tabActivity, которая простирается от MapActivity, а затем использует фрагменты для рамки содержимого вкладок? Это также уменьшит сложность вашей основной деятельности, что потенциально означает большую эффективность. Google Maps api для Android немного не хватает, я обычно нахожу. – pablisco

+0

Нет, минимальное требование к версии - Android 2.1, и если я не ошибаюсь, фрагменты были реализованы позже. Поэтому я не могу их использовать. Я даже не работал с ними. – Ioras

+0

Вы все еще можете использовать фрагменты с пакетом поддержки: http://developer.android.com/sdk/compatibility-library.html – pablisco

ответ

0

Как я уже говорил в комментариях это, кажется, проблема с API Google Maps:

http://code.google.com/p/android/issues/detail?id=19154&q=google%20maps%20tiles&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars

Будем надеяться, что они фиксируют его в скором времени.

Я хочу попробовать некоторые из этих альтернатив:

Alternatives to google maps api

доложит если стоит дело с :)

Это один также представляется перспективным: http://code.google.com/p/mapsforge/