2017-02-17 8 views
0

Googleのバックアップサービスを使用してメッセージをバックアップするかどうかをユーザーに確認する状況があります。私は正常に現在のレルムのデータベースをSDカードにバックアップしています。ここからGoogleのサービスへのバックアップが行われます。 しかし、私は実際には、現在のレルムのファイルをSDカードで利用可能なものと置き換えることを意味する、現実のレルムインスタンスにSDカードからデータベースを実際に復元するシナリオについて考えています。SDカード/外部ストレージからレルムDBを復元する

旧バージョンでは、レルムがレルムがデータベースファイルを読み取るカスタムパスを指定する方法を示しましたが、この新しいファイルでは何も表示されません。

お願いします。

答えて

1

private String copyBundledRealmFile(String oldFilePath, String outFileName) { 
    try { 
     File file = new File(activity.getApplicationContext().getFilesDir(), outFileName); 

     FileOutputStream outputStream = new FileOutputStream(file); 

     FileInputStream inputStream = new FileInputStream(new File(oldFilePath)); 

     byte[] buf = new byte[1024]; 
     int bytesRead; 
     while ((bytesRead = inputStream.read(buf)) > 0) { 
      outputStream.write(buf, 0, bytesRead); 
     } 
     outputStream.close(); 
     return file.getAbsolutePath(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    return null; 
} 

・ホープ、このヘルプを復元するバックアップファイル

public void backup() { 
    try { 
     // create a backup file 
     File exportRealmFile; 
     exportRealmFile = new File(EXPORT_REALM_PATH, EXPORT_REALM_FILE_NAME); 

     // if backup file already exists, delete it 
     exportRealmFile.delete(); 

     // copy current realm to backup file 
     realm.writeCopyTo(exportRealmFile); 

    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    realm.close(); 
} 

を作成します。

link

関連する問題