Android: 如何在内存中创建和保存 mapview 以供所有活动使用
Android: how to create and hold mapview in memory for all activities to use
我想减少 google 地图在我的应用程序中的启动时间。以一些内存为代价,我想在启动时创建 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" />
我看不出有任何理由,但我会在活动的生命周期中搜索一些东西。为了实现你想要的东西,你需要获取 map/activity 的当前状态并将其保存在 onPause
和 onDestroy
方法中。然后在 onCreate
和 onResume
你可以检查你是否有任何保存的状态,如果是,使用你自己的逻辑恢复它但是在地图和本地化的情况下我不认为这是一个好主意
我想减少 google 地图在我的应用程序中的启动时间。以一些内存为代价,我想在启动时创建 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" />
我看不出有任何理由,但我会在活动的生命周期中搜索一些东西。为了实现你想要的东西,你需要获取 map/activity 的当前状态并将其保存在 onPause
和 onDestroy
方法中。然后在 onCreate
和 onResume
你可以检查你是否有任何保存的状态,如果是,使用你自己的逻辑恢复它但是在地图和本地化的情况下我不认为这是一个好主意