Autore Topic: utilizzare un backup salvato.....  (Letto 364 volte)

Offline paul78

  • Utente normale
  • ***
  • Post: 359
  • Respect: +1
    • Mostra profilo
    • Android Code
  • Sistema operativo:
    Linux - Windows
utilizzare un backup salvato.....
« il: 01 Settembre 2013, 09:49:20 CEST »
0
ciao a tutti!!!!

con questo cod:

Codice (Java): [Seleziona]
public void backup(View view) {
                try {
            File sd = Environment.getExternalStorageDirectory();
            File data = Environment.getDataDirectory();

            if (sd.canWrite()) {
                String currentDBPath = "/data/com.example.multiselectdb/databases/database.db";
                String backupDBPath = "database.db";
                File currentDB = new File(data, currentDBPath);
                File backupDB = new File(sd, backupDBPath);

                    FileChannel src = new FileInputStream(currentDB).getChannel();
                    FileChannel dst = new FileOutputStream(backupDB).getChannel();
                    dst.transferFrom(src, 0, src.size());
                    src.close();
                    dst.close();
                    Toast.makeText(getBaseContext(), backupDB.toString(), Toast.LENGTH_LONG).show();

            }
        } catch (Exception e) {

            Toast.makeText(getBaseContext(), e.toString(), Toast.LENGTH_LONG).show();

        }
        }

riesco ad eseguire il backup.....ma se volessi utilizzare il backup salvato...come faccio???
tutti possiamo programmare...basta volerlo!!!

Offline matttt

Re:utilizzare un backup salvato.....
« Risposta #1 il: 01 Settembre 2013, 11:00:02 CEST »
0
Qualche nota:
- get external può ritornare valore null se non ci sono partizioni esterne disponibili, quindi ti conviene fare un controllo;
- current path... non ti conviene usare un percorso assoluto (salvo non sia soltanto un test questo), meglio usare sempre le funzioni android che ti restituiscono il path opportuno;
- in sostanza la tua funzione crea semplicemente una copia di un DB SQLite... mi sembra di capire;
- per usare il nuovo DB fai la solita chiamata openDatabase col nuovo percorso...
Codice (Java): [Seleziona]
mDB = SQLiteDatabase.openDatabase( mFile.getAbsolutePath(), null, SQLiteDatabase.CREATE_IF_NECESSARY | SQLiteDatabase.OPEN_READWRITE );
Le mie apps su Google Play Store:

Offline paul78

  • Utente normale
  • ***
  • Post: 359
  • Respect: +1
    • Mostra profilo
    • Android Code
  • Sistema operativo:
    Linux - Windows
Re:utilizzare un backup salvato.....
« Risposta #2 il: 01 Settembre 2013, 11:10:03 CEST »
0
ciao mattt...grazie mille per la risposta!!!!

...quello che sto facendo sono solo delle prove per poi applicarle alle app.

di quello che mi hai scritto non ho capito una cosa...

meglio usare sempre le funzioni android che ti restituiscono il path opportuno;

come faccio???

c'è una guida???

è la prima volta per me....

tutti possiamo programmare...basta volerlo!!!

Offline matttt

Re:utilizzare un backup salvato.....
« Risposta #3 il: 01 Settembre 2013, 11:20:50 CEST »
0
meglio usare sempre le funzioni android che ti restituiscono il path opportuno;
come faccio???
c'è una guida???
è la prima volta per me....
Non c'è problema.
In android ci sono varie funzioni che ti ritornano i percorsi validi per salvare / caricare determinate risorse.

Nel tuo caso essendo database della tua app puoi fare (partendo dal contesto dell'app):
Codice (Java): [Seleziona]
mFile = new File( ( ( mContext.getExternalCacheDir() != null ) ? mContext.getExternalCacheDir() : mContext.getCacheDir() ) + DATABASE_FILE );
mDB = SQLiteDatabase.openDatabase( mFile.getAbsolutePath(), null, SQLiteDatabase.CREATE_IF_NECESSARY | SQLiteDatabase.OPEN_READWRITE );
In questo modo android ti crea già un percorso specifico sulla partizione esterna se disponibile, altrimenti usa quella interna.

Se usi Environment hai i percorsi generici a cui poi devi aggiungere il nome di una tua cartella.
Le mie apps su Google Play Store:

Offline paul78

  • Utente normale
  • ***
  • Post: 359
  • Respect: +1
    • Mostra profilo
    • Android Code
  • Sistema operativo:
    Linux - Windows
Re:utilizzare un backup salvato.....
« Risposta #4 il: 01 Settembre 2013, 11:26:09 CEST »
0
...grazie mille!!! :D
tutti possiamo programmare...basta volerlo!!!