Подтвердить что ты не робот

SetContentView() медленно с фрагментом карты

Я работаю над приложением, которое отображает карту google (api v2) как фрагмент. Когда приложение загружается, он показывает пустой белый экран на пару секунд, прежде чем показывать карту. Я использовал операторы журналов, чтобы увидеть, где задержки, но я не знаю, почему это так медленно.

Вот мой onCreate:

@Override
protected void onCreate(Bundle savedInstanceState) {
    Log.i(TAG, "onCreate Start -------------------------------");
    super.onCreate(savedInstanceState);
    Log.i(TAG, "onCreate 1 -------------------------------");
    setContentView(R.layout.activity_main);
    Log.i(TAG, "onCreate 2 -------------------------------");
    do_async_setup();
    Log.i(TAG, "onCreate 3 -------------------------------");
    prefs = getSharedPreferences(PREFS_NAME, 0);
    prefs_editor = prefs.edit();
    Log.i(TAG, "onCreate Finish -------------------------------"); 

И вот вывод.

01-20 10:05:28.802: I/HeadsUp(19544): onCreate Start -------------------------------
01-20 10:05:28.802: I/HeadsUp(19544): onCreate 1 -------------------------------
01-20 10:05:30.396: I/HeadsUp(19544): onCreate 2 -------------------------------
01-20 10:05:30.396: I/HeadsUp(19544): onCreate 3 -------------------------------
01-20 10:05:30.403: I/HeadsUp(19544): onCreate Finish -------------------------------

Вы можете увидеть задержку 1,5 с для setContentView. Вот мой макет.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/map"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        class="com.google.android.gms.maps.SupportMapFragment"/>

</RelativeLayout>

Он просто выглядит плохим, как приложение застыло при загрузке. Как я могу либо ускорить это, либо скрыть задержку?

спасибо,

4b9b3361

Ответ 1

Это недостаток использования GLSurfaceView, такого как новые карты v2 в Android. Задержка вызвана инициализацией GLSurfaceView. См. Здесь http://code.google.com/p/gmaps-api-issues/issues/detail?id=4639 для краткого объяснения рядом с сообщением № 5 от Googler и фрагмента, чтобы помочь решить эту проблему (немного). Пожалуйста, отметьте вопрос, чтобы повысить его приоритет.

Ответ 2

Я обнаружил, что это может быть довольно медленным, если у вас есть сеанс отладки, но обычно это более приемлемая скорость, когда вы этого не делаете. Если он работает быстрее с отсоединенным USB-кабелем, возможно, поэтому.