Android使MapView加载更快

Android使MapView加载更快,android,map,preload,Android,Map,Preload,hi my app有时在没有3g网络的农村地区使用,因此mapview第一次加载时速度非常慢 我希望能够在后台(服务中或主活动(家庭活动))中预加载一些互动程序,以加快下载速度 我看到有一个方法mapView.preLoad(),但它只适用于mapView对象。我怎么能在服务中做同样的事情?我想这样做: MapView mv=new MapView(this, getResources().getString(R.string.MAP_API_KEY)); mv.preLoad(); 问题是

hi my app有时在没有3g网络的农村地区使用,因此mapview第一次加载时速度非常慢

我希望能够在后台(服务中或主活动(家庭活动))中预加载一些互动程序,以加快下载速度

我看到有一个方法mapView.preLoad(),但它只适用于mapView对象。我怎么能在服务中做同样的事情?我想这样做:

MapView mv=new MapView(this, getResources().getString(R.string.MAP_API_KEY));

mv.preLoad();
问题是,如果上下文不是MapActivity,则会引发异常

以下是应用程序的流程:

用户启动应用程序

主活动获取地图的位置数据和统计数据

用户打开地图活动

地图活动运行得更快,因为下载的数据已经在缓存中


你知道我能做什么吗?thks预先通知

我在片段中使用android
Mapview
,但当我加载带有坐标的地图时,它根本没有加载。所以我找到了解决办法

首先在onCreate方法中初始化映射

View v = inflater.inflate(R.layout.fragment_layout, null);
map = (MapView) v.findViewById(R.id.map);
map.onCreate(this.savedInstance);
然后像这样设置地图视图

private void setUpMap() {
    try {
        MapsInitializer.initialize(mContext);
    } catch (GooglePlayServicesNotAvailableException e) {
        e.printStackTrace();
    }

    mMap.addMarker(new MarkerOptions().position(new LatLng(latitude, longitude)).title("Place Lable").icon(BitmapDescriptorFactory.fromResource(R.drawable.icon_drawable)));


    mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(latitude, longitude), 15));


    map.onResume();
}

这段代码中的关键点是调用
map.onResume()设置
地图后

哪一个?我尝试过类似的FreeMap,但速度似乎较慢。。。你能提供更多关于你的建议的细节吗?我不使用任何其他人,所以不能给出好的建议,但是搜索堆栈溢出有一些帖子:)试试OpenStreetMap。Osmdroid是(几乎)谷歌地图视图的完全克隆,因此切换应该很容易。我认为它支持离线磁砖。不确定这对您的效果如何,因为
MapView.onCreate(Bundle)
MapView
变慢的地方……此外,您建议在
onCreate
之后立即调用
onResume
,这是错误的