离线应用中的数据更新

时间:2012-03-19 08:32:59

标签: android android-activity android-internet

我正在为旅游业开发Android应用程序。所有数据均可离线使用,无需任何互联网连接该应用程序包含一个地图,其中数据也仅在离线模式下可用。因此,我将osstdroid用于Openstreetmap,所有需要的地图数据都包含在app文件中。可以连接到互联网的唯一活动是启动应用程序,检查是否有新数据可用,并最终将新数据下载到应用程序文件夹中。

我添加了一个视图的框图: enter image description here

我的问题是,我怎样才能只制作第一个活动,即启动活动(图像中的红色块),连接到互联网并确保所有其他活动在任何情况下都无法连接到互联网。因为当用户滚出集成地图的区域时,使用Openstreetmap的活动可能无法连接到互联网以下载新的地图图块非常重要。它不是要完全关闭整个Android设备的网络连接,因此它也会关闭其他应用程序。

提前多多感谢!

2 个答案:

答案 0 :(得分:0)

如果您声明

   <uses-permission /> 
对于Manifest中的Internet,

适用于所有活动。您无法限制外部库的功能。所以尝试使用可信的库。

答案 1 :(得分:0)

感谢您的回复!

但我已经解决了我自己的问题。

我知道我可以使用。这确实是我的问题,如果所需的地图图块尚未本地存储,带有地图的屏幕也会从网上下载新数据。

我终于找到了在osmdroid中选择地图图块源的方法:本地存储的图块或从互联网下载它们。 在osmdroid-android-xxx.jar的OpenStreetMapTilesOverlay类中,您可以使用此方法设置切片源:

/**
     * Set whether to use the network connection if it's available.
     * @param aMode
     * if true use the network connection if it's available.
     * if false don't use the network connection even if it's available.
     */
    public void setUseDataConnection(boolean aMode) {
            mTileProvider.setUseDataConnection(aMode);
    }

所以,我实现了这段代码只使用离线地图图块:

 mapView.setUseDataConnection(false);

其中mapView是我的OSM MapView

有很好的发展!