2016-01-24 58 views
-3

我想在我的android应用程序中使用sqlite备份我的数据库。由于这是谷歌给定的代码,但它没有显示任何结果,甚至在logcat中出现错误。它应该是什么意思?对不起我只是新的Android开发..Android备份数据库没有结果

  try { 

       File sd = Environment.getDataDirectory(); 
       File data = Environment.getDataDirectory(); 
       FileChannel source=null; 
       FileChannel destination=null; 
       if (sd.canWrite()) { 
        String currentDBPath = "//data//" + "com.example.jes.myapplication" 
          + "//databases//" + "TINDERO.DB"; 
        String backupDBPath = "//data//" + "com.example.jes.myapplication" 
          + "//databases//" + "//TINDERO_BACKUP//" + "TINDERO.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(getApplicationContext(), "Backup Successful!", 
          Toast.LENGTH_SHORT).show(); 
        Toast.makeText(getApplicationContext(), "Hello", Toast.LENGTH_SHORT).show(); 

       } 
      } catch (IOException e) { 
      Toast.makeText(getApplicationContext(), "Failed",Toast.LENGTH_SHORT).show(); 
      } 


     } 
    }); 
+0

介意将**完整的logcat **添加到您的问题中? –

回答

0

if (sd.canWrite())可能会始终为false。在该块内部放置一个断点并查看它是否正在输入if块。或者把一个其他的块,并检查。

+0

它的失败。你认为我的代码中的错误是什么?感谢您的答案btw –