sql >> Database teknologi >  >> RDS >> SQLite

Sådan gendannes Sqlite-database efter backup af Android

Dette er kernekoden for en fungerende DB-gendannelse (fra if (dbfile .. i et try ).

            private static final int BUFFERSZ = 32768;
            private byte[] buffer = new byte[BUFFERSZ];
            ........
            dbfile = new File(currentdbfilename);
            .......
            if (dbfile.delete()) {
                origdeleted = true;
            }

            FileInputStream bkp = new FileInputStream(backupfilename);
            OutputStream restore = new FileOutputStream(currentdbfilename);
            copylength = 0;
            while ((copylength = bkp.read(buffer)) > 0) {
                restore.write(buffer, 0, copylength);
            }
            restore.flush();
            restore.close();
            restoredone = true;
            bkp.close();

De vigtigste forskelle er, at jeg sletter DB-filen og bruger skrivning frem for overførsler. Senere og efter en vellykket gendannelse bruger jeg også følgende til at genstarte appen (kan være overkill, men det virker for mig), da du kan få uforudsigelige resultater (jeg tror, ​​at dele af den originale database kan tilgås fra hukommelse/cachedata):-

    Intent i = getBaseContext().getPackageManager()
                                            .getLaunchIntentForPackage( getBaseContext().getPackageName() );


    i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    finish();
    startActivity(i);
    System.exit(0);



  1. java.lang.ClassNotFoundException:org.postgresql.Driver, Android

  2. hvordan kan man sammenkæde mere end to kolonner i plsql-udvikler?

  3. Sådan bruger du Query Designer i SQL Server

  4. Grundlæggende om SQL Server Task Automation