2016-01-24 116 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 –