Question:
   你不是已经有思路了吗?按照你的思路将文件放到 sd 卡特定目录下,然后判断是否存在,之后转移文件位置不就 ok 了,既然有了思路,为什么不直接按照思路写下去?

解决方案 »

  1.   

    可以把服务器的数据保存在本地的sqlite数据库作为缓存,只是数据一致性需要注意。
      

  2.   

    你好,你的问题描述可能太拖拉,看了一下你可能有两个问题:
    1、电脑上为什么看不到手机里应用的数据库文件。
    答:你在eclipse看到的是在手机的机身内存,而电脑上是看不到的,电脑只能看到卡存储介质,所以你找不到。
    2、如何使用外部数据库数据文件覆盖应用中已经有的数据库数据文件。
    答:这个是不需要root权限的,但是需要读写权限(不同系统可能有差别4.0以后只需要存储介质的读写权限)。你可以复制你的新文件到指定地方。
    3、至于你要解决的这个问题,可能是一种错误的解决方式(不太清楚你的大数据是怎么来有什么用)。
    答:应用的网络请求应该是,需要这个数据的时候,一条请求对应一个BO(Business Object)这样的方式,然后存储,在操作他们,不需要的你就不用下载存储。
      

  3.   

    如果你通过USB复制到sdcard上的数据库sadb.db和APP的数据库结构完全一致的话,你可以用sadb.db直接覆盖应用的数据库.把那段代码的原地址和目标地址互换即可.
    或者干脆你应用创建数据库时就直接指定目录在sdcard下
    大概是:
    public class MapDBHelper extends SQLiteOpenHelper {private static final String dbFile = Environment.getExternalStorageDirectory().getAbsolutePath()+"/sadb.db";
    //如果dbFile = "sadb.db";的话,系统默认地址是在data/data/xxxxx/database/下
    public MapDBHelper(Context ctx) { 
       super(ctx,dbFile,null,DATABASE_VERSION);
    }
    }这样就可以随便通过USB复制/覆盖了(坏处是别人无需root即可看到你的数据库,并对其操作)
    (应用需要sdcard的读写权限<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />)