13

我正在开发一个将谷歌地图(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 -------------------------------

您可以看到 setContentView 有 1.5 秒的延迟。这是我的布局。

<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>

它看起来很糟糕,就像应用程序在加载时冻结一样。我怎样才能加快速度或隐藏延迟?

谢谢,

4

2 回答 2

13

这是使用 GLSurfaceView(例如 Android 中的新地图 v2)的一个缺点。延迟是由 GLSurfaceView 的初始化引起的。请参阅此处http://code.google.com/p/gmaps-api-issues/issues/detail?id=4639以获取来自 Google 员工的帖子 #5 附近的简要说明以及帮助解决此问题的片段(一点点)。请为该问题加注星标以提高其优先级。

于 2013-01-20T22:26:51.793 回答
2

我发现如果您连接了调试会话,这可能会很慢,但是当您没有连接时,这通常是一个更可接受的速度。如果它在断开 USB 电缆的情况下运行得更快,这可能就是原因。

于 2014-12-22T08:50:57.743 回答