2011-11-22 3 views
0

저는 기기 카메라 사용을 포함하는 앱에서 작업 해 왔습니다. 이미지를 가져 와서 SD 카드에 저장 한 후 안드로이드의 미디어 데이터베이스를 통해 미리보기 이미지를 얻고 싶습니다. 그래서 MediaScanner를 시작해야 시스템에서 내 이미지를 인식 할 수 있습니다.MediaScanner 후에 데이터베이스 업데이트가 완료되는 시점을 아는 방법은 무엇입니까?

그러나, 여기

데이터베이스 업데이트가 올바른 방법으로 완료되지 않은 것 같다
 @Override 
     public void onScanCompleted(String path, Uri uri) { 

      if (mediaScanConn.isConnected()) { 
       mediaScanConn.disconnect(); 

      } 
     }` 

을 알 수 있습니다 MediaScannerConnectionClient finshed 스캔 후,이 과정을 완료 내 휴대 전화에 대한 800ms 소요

, 어떻게 데이터베이스 업데이트가 언제 완료되는지 알 수 있습니까? 제발 도와주세요. 코드를 게시하는 것이 가장 좋습니다. 고마워요!

답변

1

데이터베이스에 그림 정보를 이미 삽입 한 경우에도 (스캔 디렉토리와 동일) 축소판 작성이 완료되었음을 보장 할 수 없습니다. 썸네일 생성은 실제로 다른 스레드에서 실행됩니다. 특히 비디오 파일의 경우 파일에서 썸네일을 추출/디코딩하는 데 시간이 걸리기 때문입니다.

Android 카메라 애플리케이션 소스 코드를 확인한 결과 콘텐츠 정보를 데이터베이스에 삽입 할 때 생성 된 미리보기 이미지를 기다리는 것이 아니라 애플리케이션 내부에서 미리보기 이미지 생성을 수행하는 것으로 보입니다. 이는 MediaScanner가 백그라운드에서 (SD 카드를 부팅하거나 장착 한 직후) 실행 중일 때 사진을 찍으면 대기열 끝에 배치되므로 시간이 걸릴 것임을 의미합니다 귀하의 이미지가 처리됩니다.