2015-01-28 2 views
1

안녕하세요, 나는 데이터를 Sqlite & SharedPrefrences에 저장하고있는 응용 프로그램을 개발하고 있습니다. 나는 그들이 우리가 SD 카드에 데이터를 백업하려는대로 클라우드 스토리지에 대해서만 생각하지만 서비스를 등록하여 할 수 있다고 안드로이드 워드 프로세서에서 공부했습니다. 나는 또한 FileBackHelper를 찾았지만 어떤 명확성도 제시하지 못했다.백업 및 SD 카드에 SharedPreferences SqliteDatabase, 복원하는 방법 - 안드로이드

구현 방법 중 가장 좋은 방법은 무엇입니까?

+0

우수 답변 : http://stackoverflow.com/a/18322762/1318946 –

답변

4

당신은 대부분의 디바이스 제조에 의해 선택이

private void exportDB(){ 
    File sd = Environment.getExternalStorageDirectory(); 
     File data = Environment.getDataDirectory(); 
     FileChannel source=null; 
     FileChannel destination=null; 
     String currentDBPath = "/data/"+ "com.your.package" +"/databases/"+db_name; 
     String backupDBPath = SAMPLE_DB_NAME; 
     File currentDB = new File(data, currentDBPath); 
     File backupDB = new File(sd, backupDBPath); 
     try { 
      source = new FileInputStream(currentDB).getChannel(); 
      destination = new FileOutputStream(backupDB).getChannel(); 
      destination.transferFrom(source, 0, source.size()); 
      source.close(); 
      destination.close(); 
      Toast.makeText(this, "DB Exported!", Toast.LENGTH_LONG).show(); 
     } catch(IOException e) { 
      e.printStackTrace(); 
     } 
} 

공유 환경 설정 파일 위치와 같은 sdcard에 당신의 SQLite는 DB를 복사 할 수 있습니다, 그래서 공유 된 환경 설정 파일의 하드 코드 경로에 좋지 않다.

+0

감사하지만 어떻게 복원 할 수 있습니까? –

+0

그냥'exportDB();의 메카니즘을 바꿔주세요. –

+0

괜찮습니다. db 파일 복사를위한 장치의 루트가되어야합니다. –