Java Android:如何在内存中创建并保存mapview以供所有活动使用

Java Android:如何在内存中创建并保存mapview以供所有活动使用,java,android,static,maps,startup,Java,Android,Static,Maps,Startup,我想缩短我的应用程序中谷歌地图的启动时间。以一些内存为代价,我希望在启动时创建mapview,然后在任何需要它的活动中使用它,而不会在应用程序运行时销毁和重新创建它。这可能吗?我看到的问题是,除非在布局中使用mapview,否则mapview实际上不会初始化,并且当用户在活动之间移动时,连续的布局会被破坏 <com.google.android.gms.maps.MapView android:id="@+id/mapview" android:layout_width="

我想缩短我的应用程序中谷歌地图的启动时间。以一些内存为代价,我希望在启动时创建mapview,然后在任何需要它的活动中使用它,而不会在应用程序运行时销毁和重新创建它。这可能吗?我看到的问题是,除非在布局中使用mapview,否则mapview实际上不会初始化,并且当用户在活动之间移动时,连续的布局会被破坏

<com.google.android.gms.maps.MapView
    android:id="@+id/mapview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    map:cameraZoom="13"
    map:mapType="normal"
    map:uiZoomControls="false"
    map:uiRotateGestures="true"
    map:uiScrollGestures="true"
    map:uiZoomGestures="true"
map:uiTiltGestures="false" />


我看不出有什么原因,但我会在活动的生命周期中搜索一些东西。要实现您想要的目标,您需要获取地图/活动的当前状态,并将其保存在
onPause
onestory
方法中。然后在
onCreate
onResume
中,您可以检查您是否有任何已保存状态,如果是,请使用您自己的logick恢复状态,但在地图和本地化的情况下,我认为这不是一个好主意

谢谢。我知道这不是一个最佳实践,但目前用户看到的是地图加载,而不是已经加载的地图,这不是一个好的体验。我已经尽可能地优化了加载时间,但它不是即时的。如果地图已经预先加载,那么它将是即时的。它不会解决您的问题。加载时间取决于您的位置和internet连接。如果您在距离最后一个位置20-30公里的地方恢复应用程序,那么从内存加载地图是无用的,因为您仍然需要从开始到中心加载所有内容,并加载在“用户在活动之间移动时,连续布局被破坏”之前未加载的地图部分,然后删除活动。有一个活动,与地图,执行您想要的功能。